web-dev-qa-db-fra.com

créer un shortcode pour tirer un tableau json

Franchement - ceci peut être une copie d'une autre question que j'ai là-bas. Désolé si c'est le cas. J'apprends ce site et le développement PHP/Wordpress. J'ai des partenariats avec des sites locaux utilisant JSON et nous travaillons ensemble. Ils ne sont cependant pas des spécialistes de Wordpress.

Je veux extraire ce que mon ami appelle un objet JSON à partir de cette URL:

http://aggrenda.com/mpellas/michael-pellas/events.json

J'essaie de créer un shortcode capable d'analyser les données dans des publications planifiées. J'ai des données spécifiques de date, adresse, description (et autres).

J'ai travaillé avec PHP sur phpfiddle.org et j'ai réussi. Je n'ai cependant pas réussi à traduire quoi que ce soit en fonctionnalité Wordpress.

Voici l'une de mes dernières tentatives:

add_shortcode('aggrenda', 'requestAggrendaEvents');
function requestAggrendaEvents() 
{
$json = file_get_contents("http://aggrenda.com/mpellas/michael-pellas/events.json");
$data = json_decode($json, true);
var_dump($data['events'][1]['title']);
}

Le php de base fonctionne, mais si je chnge file_get_contents avec wp_remote_get, je ne me retrouve qu'avec une page blanche ... ou un retour nul en fonction de petites variations dans mon code. Je mets tout dans functions.php.

J'ai un certain nombre d'autres extraits où le PHP fonctionne mais je ne peux pas le traduire en fonctionnalité WP. Je suis sûr que je mssing quelque chose de petit. Aidez-moi?

1
mpellas

Selon la documentation sur wp_remote_get() , cela ne vous renvoie pas uniquement le corps de la ressource demandée. Son retour sera soit le tableau de données ou l'objet WP_Error en cas d'échec.

L'extrait le plus simple pour atteindre le corps serait:

$json = wp_remote_retrieve_body( wp_remote_get( $url ) );

PS c'est un peu bizarre de faire ça en shortocde, êtes-vous sûr que c'est l'endroit le plus approprié? :)

0
Rarst