Ich muss beliebte und aktuelle Beiträge auf einer anderen PHP-Website unter derselben Domain anzeigen.
Beispiel:
www.example.com
-> Hauptwebsite (PHP, MySQL)www.example.com/blog
-> WordPress-Blog
Müssen beliebte, aktuelle Blog-Beiträge auf der Hauptwebsite anzeigen.
Bitte beachten Sie, dass Blog und Hauptwebsite zwei separate Datenbanken verwenden.
Ich habe mich dafür entschieden, das WP REST JSON API Plugin zu verwenden. Jetzt habe ich eine andere Frage.
Ich verwende den folgenden Code, um den beliebten Beitrag der letzten Woche abzurufen. Was ich eigentlich brauche, ist, die gleichen Daten per API-Aufruf zu erhalten.
$args = array(
'date_query' => array( array( 'after' => '1 week ago' ) ),
'posts_per_page' => $recent_posts_count,
'ignore_sticky_posts' => 1,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
);
$popularposts = new WP_Query( $args );
Wie kann ich das machen?
json
plugin-json-api
popular-posts
web-services
wp-api
Janith Chinthana
quelle
quelle
Antworten:
Ich werde Ihnen eine kleine Antwort auf Ihr Update geben und dies mit der WP-API tun . Die API hat die Möglichkeit, die WP_Query wie auch im Core zu verwenden, jedoch über die get-Parameter in der URL.
Eine URL zum Abrufen von Inhalten aus dem Post-Status sieht folgendermaßen aus:
Gehen Sie folgendermaßen vor, um Inhalte mit den gewohnten WP_Query-Parametern abzurufen:
Sie können Ihre benutzerdefinierte Abfrage mit allen Parametern auch in der URL erstellen. Sie können sehen, wie sich die Methode zum Abrufen dieser Daten
WP_Query
für eine Standard-WordPress-Schleife vertraut anfühlt . Wenn Sie keinen Parameter angeben, werden die StandardeinstellungenWP_Query
verwendet.Das Ergebnis ist json, das Sie analysieren und für Ihre externe Site verwenden können.
Weitere Parameter und Dokumentationen finden Sie auch auf der Website der API .
Update für
date_query
Die API kann kein Ergebnis für eine Abfrage wie erstellen
query_date
. In der Dokumentation finden Sie alle möglichen Parameter.Aber die neue Version wird in Sicht Tagen, Wochen veröffentlicht. In diesem Problem finden Sie Informationen zu einer Lösung für diese Datumsabfrage. Alternativ können Sie einen benutzerdefinierten Filter über einen Haken verwenden, z.
Update für
meta_query
Die API kann diese Funktion der Standard-WP-Abfrage auch nicht verwenden. Sie können jedoch einen Hook verwenden, um die API an diese Anforderung anzupassen. Auch hier ein kleines Beispiel.
Jetzt kann ich JSON so restful aufrufen, um den Wp_query-Posts-Filter nachzuahmen, der sich bereits auf dem Server befindet:
Das Meta-Abfrage-Update basiert auf dieser Antwort .
quelle
'date_query' => array( array( 'after' => '1 week ago' ) ),
alsfilter[posts_per_page]=2&filter[order]=ASC
diese beiden funktionieren nicht, daher werden immer nur die neuesten Beiträgehttp://localhost/wpbeta/plugins/wp-json/posts?filter[posts_per_page]=1&filter[order]=ASC
. Viel mehr in meinem Update unten in der Antwort.post_per_page
&order
funktioniert, aber was ist mitmeta_key
. funktioniert es damit oder muss ich dafür extra arbeiten?