Utilisation de deux boucles dans un modèle WordPress

Publié par Jean-Michel le

Salut, j’essaie d’utiliser deux boucles dans mon modèle WP car j’utilise des champs personnalisés avancés pour afficher les informations d’un type de publication personnalisé (collège)

J’ai testé mon code (étiquette ‘boucle qui ne fonctionne pas’ ci-dessous) en haut du fichier de modèle et il extrait les données correctes, mais lorsque je le place dans le modèle où je le veux, il extrait les données du poste c’est sur.

Lire également:  Pourquoi ma page wordpress 404 apparaît-elle vide ?

Je soupçonne que ce problème pourrait être lié à la fonction ‘your_custom_loop’ et à la nécessité de configurer une autre fonction comme celle-ci pour ma nouvelle boucle. Aide très appréciée merci

<?php
remove_action( 'genesis_loop', 'genesis_do_loop' );
add_action( 'genesis_loop', 'your_custom_loop' );

function your_custom_loop() { ?>

<article itemtype="http://schema.org/CreativeWork" itemscope="itemscope" class="post-<?php print $pageid; ?> page type-page status-publish entry">
<div class="entry-content" itemprop="text">

<?php
do_action( 'genesis_entry_header' );
?>


// Loop which doesn't work: 
<?php

$post_object = get_field('resource_college');

if( $post_object ): 

    // override $post
    $post = $post_object;
    setup_postdata( $post ); 

    ?>
    <div>
        <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
        <span>Post Object Custom Field: <?php the_field('field_name'); ?></span>
    </div>
    <?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
<?php endif; ?>

// Regular loop
<?php

if(have_posts()) : while(have_posts()) : the_post();

Solution n°1 trouvée

Je pense avoir déjà vu ce problème et vous devez définir global $post;la ligne avant de pouvoir l’utiliser setup_postdata($post);car il ne renvoie pas l’ $postobjet, mais le définit plutôt dans la portée globale.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *