Die Tabelle wp_posts scheint alle Revisionen derselben zu behalten, ok, sehr ähnlich, aber vermutlich unterschiedlich, Posts / Seiten / was auch immer.
Ich bin etwas vertraut mit SQL, aber nicht mit WordPress. Ich muss nur die Datensätze extrahieren, die auf der öffentlich zugänglichen Website erscheinen würden. also nur die letzte Revision und nicht alle abgelösten Zeilen. Ich bin mir nicht sicher, wie ich die Felder filtern soll. Offensichtlich etwas komplizierteres als:
select *
from wp_posts
where post_status in ('publish','revision')
order by post_modified desc
das hat 'Duplikate' und scheint einige Sachen zu vermissen.
DISTINCT
.Antworten:
Anstatt eine Abfrage von Grund auf neu zu erstellen, ist es einfacher zu erkennen, was genau WordPress abfragt, wenn die API-Funktion verwendet wird:
Gibt folgendes SQL an:
quelle
Sie sollten dies verwenden, da Wordpress hier schweres Heben ausführt:
Weitere Informationen zum Hinzufügen von Argumenten zu query_posts finden Sie unter http://codex.wordpress.org/Class_Reference/WP_Query
Sie sollten auch die Wordpress-Datenbankklasse verwenden, wenn Sie manuelle MYSQL-Abfragen erstellen. Weitere Informationen finden Sie hier: http://codex.wordpress.org/Class_Reference/wpdb Wordpress enthält außerdem eine hervorragende Funktion zum Escape-Enthalten von Daten in Abfragen, um Ihren Betrieb zu schützen: esc_sql ($ string);
Sie können die Wordpress-Datenbankklasse folgendermaßen verwenden:
Wenn Sie $ wpdb-> verwenden, bevor der Tabellenname dem zugewiesenen Datenbankpräfix vorangestellt wird. Dies ist wichtig, da Sie mithilfe von Tabellenpräfixen mehrere Wordpress-Installationen in einer Datenbank haben können. $ wpdb-> greift auf den richtigen Präfixkontext zu.
quelle