WordPress : Comment modifier la requête principale ou obtenir les données d’un article ou d’une page ?

Obtenir les données d’une page ou d’un article avec get_post()

echo the_title(); // Titre de la page courante.
$post = get_post( 21 );
echo the_title(); // Titre du post 21.

/*
Retourne :
WP_Post Object
(
[ID] =>
[post_author] =>
[post_date] =>
[post_date_gmt] =>
[post_content] =>
[post_title] =>
[post_excerpt] =>
[post_status] =>
[comment_status] =>
[ping_status] =>
[post_password] =>
[post_name] =>
[to_ping] =>
[pinged] =>
[post_modified] =>
[post_modified_gmt] =>
[post_content_filtered] =>
[post_parent] =>
[guid] =>
[menu_order] =>
[post_type] =>
[post_mime_type] =>
[comment_count] =>
[filter] =>
)
*/
Obtenir les données d'une page ou d'un article avec get_post()

Obtenir les données de plusieurs pages ou articles avec get_posts()

Modifie la requête principale :

echo the_title(); // Titre de la page courante.

$args = array(
'posts_per_page' => 10,
'post_status' => 'publish',
'post_type' => 'page',
);

$posts = get_posts( $args );
foreach ( $posts as $post ) {
echo the_title(); // Titre de la page recherchée.
}

wp_reset_postdata(); // restaure la requête principale.

echo the_title(); // Titre de la page courante.
Modifie la requête principale

Ne modifie pas la requête principale :

echo the_title(); // Titre de la page courante.

$args = array(
'posts_per_page' => 10,
'post_status' => 'publish',
'post_type' => 'page',
);

$posts = get_posts( $args );
foreach ( $posts as $my_post ) {
echo $my_post->post_title; // Titre de la page recherchée.
}

echo the_title(); // Titre de la page courante.
Ne modifie pas la requête principale

Obtenir les données de plusieurs pages ou articles avec WP_Query()

$args = array(
'posts_per_page' => 10,
'post_status' => 'publish',
'post_type' => 'page',
);

$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
echo the_title();
}
wp_reset_postdata();
}
Obtenir les données de plusieurs pages ou articles avec WP_Query()

Obtenir une liste de page selon des critères définis

$args permet de définir quel type de contenu vous souhaitez afficher. Vous trouverez la réponse à toutes vos questions en consultant le codex. Voici ici quelques arguments souvent utiles  :

$args = array(
'posts_per_page' => 3, // Le nombre de post à afficher.
'post_status' => 'publish', // Selon le statut du post.
'post_type' => 'page', // Selon le post_type.
'author' => '123', // Selon l'ID de l'auteur (ou author_name).
'cat' => '42', // Selon l'ID de la catégorie (ou category_name).
'tag' => 'films', // Selon le tag (ou tag_id).
'tax_query' => array(
'relation' => 'AND', // (ou OR).
array(
'taxonomy' => 'movie_genre',
'field' => 'slug',
'terms' => array( 'action', 'comedy' ),
),
array(
'taxonomy' => 'actor',
'field' => 'term_id',
'terms' => array( 103, 115, 206 ),
'operator' => 'NOT IN',
),
), // Selon la taxonomy et sa valeur.
);

 

Fusionner plusieurs tableaux d’arguments :

$args = array(
'posts_per_page' => 3,
'post_status' => 'publish',
'post_type' => 'page',
);

$args2 = array(
'offset' => 3,
);

$args = array_merge( $args, $args2 ); // Fusionne les arguments.

$query = new WP_Query( $args );
// ...

 


Si cet article "WordPress : Comment modifier la requête principale ou obtenir les données d’un article ou d’une page ?" vous a aidé, si vous avez des questions ou des améliorations à proposer, n'hésitez pas à me laisser un commentaire en bas de page !
Charlie Stram,
Développeur web freelance

Vous aimerez aussi...

Laisser un commentaire

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