Utilisation de deux boucles dans un modèle WordPress
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.
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’ $post
objet, mais le définit plutôt dans la portée globale.
0 commentaire