web-dev-qa-db-fra.com

Comment boucler des données JSON dans wordpress WP REST API

J'utilise le plug-in d'API WP REST dans Wordpress et souhaite parcourir mes données JSON en utilisant un pour chaque boucle. Cependant, lorsque je var_dump la variable dans laquelle les données JSON sont stockées me donne une erreur.

"Erreur d'analyse: erreur de syntaxe, inattendue '->' (T_OBJECT_OPERATOR) dans C:\wamp\www\public_html\wp-content\themes\raj\template-wiki.php on line 22"

<?php $json = lusso_posts(); ?>

<?php var_dump($json); ?>

<?php echo ($json->wp-json->posts[1]->ID); ?>

Je pense que le "wp-json" est en conflit avec "->" ce signe car lorsque je supprime le "-" de "wp-post", l'erreur disparaît mais rien ne se voit.

CODE DE LA FONCTION DE LUSSO

`function lusso_posts () {

  // Do we have this information in our transients already?
  $transient = get_transient( 'lusso_posts' );

  // Yep!  Just return it and we're done.
  if( ! empty( $transient ) ) {

    // The function will return here every time after the first time it is   run, until the transient expires.
    return $transient;

  // Nope!  We gotta make a call.
  } else {

    // We got this url from the documentation for the remote API.
    $url = 'http://localhost/database2/wp-json/posts/';

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

    $json = json_decode($body);


    // Call the API.
    //$out = wp_remote_get( $url, $args );

    // Save the API response so we don't have to call again until  tomorrow.
    set_transient( 'lusso_posts', $json, DAY_IN_SECONDS );

    // Return the list of subscribers.  The function will return here the first time it is run, and then once again, each time the transient expires.
    return $json;

  }

}`

Toute aide serait appréciée.

Merci.

1
Raj Chudasama

J'ai réussi à résoudre ce problème et à accéder aux données JSON à l'aide d'une boucle foreach:

$json = lusso_posts();
#var_dump( $json );
#die();

foreach( $json as $post ) { 
    $titles = $post->title;
    $images = $post->featured_image->guid;
    ?>
    <div class="lusso-posts">
        <div class="image-container"><img src="<?php echo $images; ?>" />    </div>
        <h4><?php echo $titles; ?></h4>
    </div>  
    <?php
}
0
Raj Chudasama