web-dev-qa-db-fra.com

Créer une page unique sans header.php pour json feed

J'ai deux sites WordPress sur des domaines distincts. J'ai besoin d'exposer les derniers messages d'une catégorie via un fil json sur un site que je dois utiliser pour l'autre site. Je devrai taper une URL "cachée", ex: /themes/mytheme/json_api.php?cat=news pour obtenir la réponse JSON.

Je voudrais que ce flux json soit une page unique sans header.php et n'inclut que le code nécessaire pour afficher les publications dans une catégorie spécifique. Que dois-je importer pour avoir accès à WP_Query dans ce fichier?

1
jaysonp

Pourquoi ne pas utiliser un widget RSS?

1
Denis de Bernardy

On dirait que vous essayez de démarrer WordPress. Tout ce que vous avez à faire est d’inclure le fichier wp-load.php qui se trouve dans votre racine WordPress. Cela rend la plupart des fonctionnalités WP (telles que la classe WP_Query) disponibles pour votre script personnalisé.

include('wp-load.php');

De toute évidence, vous devrez ajuster le chemin d'accès à include et écrire votre propre requête/sortie.

1
MathSmath

Je suggérerais que vous utilisiez l'API AJAX . Cela démarrera WordPress Core pour vous et vous fournira la plupart des fonctions que vous attendez, y compris le $wpdb global et la classe WP_Query. Vous pouvez également utiliser le système de permission et les fonctions nonce de WordPress.

Pour que cela fonctionne, au lieu d'un fichier séparé, créez une fonction de rappel avec votre script et raccordez-la au système AJAX.

function ajax_callback_wpse_4870() {
  // your script
}
add_action('wp_ajax_your_callback_hookname','ajax_callback_wpse_4870');
add_action('wp_ajax_nopriv_your_callback_hookname','ajax_callback_wpse_4870');

Votre Javascript puis POSTs à /wp-admin/admin-ajax.php avec un paramètre d'action nommé your_callback_hookname.

Comme l'indiquent les noms de hook, le premier hook est destiné aux utilisateurs connectés, le second aux utilisateurs qui ne sont pas connectés. Vous n'avez pas besoin des deux hooks si vous ne voulez que l'un ou l'autre.

1
s_ha_dum