J'ai besoin d'afficher des articles populaires et récents sur un autre site Web PHP sous le même domaine.
Exemple:
www.example.com
-> site principal (php, mysql)www.example.com/blog
-> Blog WordPress
Besoin d'afficher des articles de blog populaires et récents sur le site Web principal.
Veuillez noter que le blog et le site Web principal utilisent deux bases de données distinctes.
J'ai décidé d'utiliser le plugin WP REST JSON API pour cela. Maintenant, j'ai une question différente.
J'utilise le code suivant pour récupérer le post populaire de la semaine dernière. Ce dont j'ai réellement besoin, c'est d'obtenir ces mêmes données via un appel API.
$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 );
Comment puis je faire ça?
json
plugin-json-api
popular-posts
web-services
wp-api
Janith Chinthana
la source
la source
Réponses:
Je vais vous donner une petite réponse à votre mise à jour, en faisant cela avec l' API WP . L'API a la possibilité d'utiliser le WP_Query comme aussi dans le noyau, mais sur les paramètres get dans l'url.
Une URL pour extraire le contenu du statut de publication ressemblerait à ceci:
Pour extraire du contenu avec les paramètres WP_Query auxquels vous êtes habitué, vous pouvez le faire comme ceci:
Vous pouvez créer votre requête personnalisée avec tous les paramètres également dans l'URL. Vous pouvez voir comment la méthode pour récupérer ces données semble familière à utiliser
WP_Query
pour une boucle WordPress standard. Si vous ne spécifiez aucun paramètre, les valeurs par défautWP_Query
seront utilisées.Le résultat est json, que vous pouvez analyser et utiliser pour votre site externe.
Voir également le site de l'API pour plus de paramètres et de documentation.
Mise à jour pour
date_query
L'API ne peut pas créer de résultat pour une requête comme
query_date
. Voir la documentation pour tous les paramètres possibles.Mais la nouvelle version sortira en vue des jours, des semaines. Et consultez ce problème pour discuter d'une solution pour cette requête de date. Vous pouvez également utiliser un filtre personnalisé via un crochet, comme:
Mise à jour pour
meta_query
L'API ne peut pas également cette fonctionnalité de WP-Query par défaut. Mais vous pouvez utiliser un crochet pour améliorer l'API à cette exigence. Ici aussi un petit exemple.
Maintenant, je peux appeler JSON reposant comme ça pour imiter le filtre de messages Wp_query déjà sur le serveur:
La mise à jour de la méta-requête basée sur cette réponse .
la source
'date_query' => array( array( 'after' => '1 week ago' ) ),
en chaîne de requêtefilter[posts_per_page]=2&filter[order]=ASC
ci ne fonctionnent pas, donc ils ne donnent que des articles récentshttp://localhost/wpbeta/plugins/wp-json/posts?filter[posts_per_page]=1&filter[order]=ASC
. Beaucoup plus dans ma mise à jour ci-dessous dans la réponse.post_per_page
etorder
fonctionne, mais qu'en est-ilmeta_key
. ça marche avec ça ou j'ai besoin de travail supplémentaire pour ça?