web-dev-qa-db-fra.com

Cibler des pages spécifiques dans la boucle

J'ai une requête personnalisée qui appelle des pages dans un tableau comme suit:

<?php
$args = array(
    'post__in' => array( 2, 7, 9, 11, 13 , 15, 17 ),
    'post_type' => 'page',
    'orderby' => 'menu_order',
    'order' => 'ASC'
);
$the_query = new WP_Query( $args ); 
while ( $the_query->have_posts() ) : $the_query->the_post();
?>

Est-il toujours possible de cibler des pages individuelles du tableau pour modifier le code d’une page à l’autre, c.-à-d.

<?php if(is_page(7)) { ?>
    // do something
<?php } else { ?>
    // do something else
<?php } ?>

dans cette requête ou dois-je interroger chaque page dans une requête distincte?

J'utilise cette requête pour rassembler plusieurs pages dans un modèle (front-page.php) afin de disposer d'une mise en page unique, c'est-à-dire de tout le contenu d'une page. Je souhaite donc utiliser des conditions dans la boucle pour plus de clarté dans mon code. .

2
physalis

Vous préféreriez plutôt utiliser l'ID de publication dans la boucle pour cibler vos pages. is_page() vérifie simplement si la page en cours est réellement une page ou une page spécifique si une valeur est passée

Exemple

if ( $post->ID === 7 ) {
    // Do something for page id 7
} else {
    // Do something for other pages
}
4
Pieter Goosen