Recherche…


Syntaxe

  • $ the_query = new WP_Query ($ args);
  • $ posts_array = get_posts ($ args);

Paramètres

Paramètre La description
$ args (array) Tableau d'arguments nécessaires à une requête - peut être personnalisé en fonction de vos besoins, par exemple en interrogeant des publications d'une seule catégorie, d'un type de publication personnalisé ou même en interrogeant certaines taxonomies

Remarques

Les arguments de requête sont nombreux. La page de codex WP_Query () contient une liste de paramètres. Certains d'entre eux sont

L'une des choses les plus importantes à retenir est la suivante:

Ne jamais utiliser query_posts ()

query_posts() remplace la requête principale et peut entraîner des problèmes dans le reste de votre thème. Chaque fois que vous devez modifier la requête principale (ou une requête quelconque), utilisez le filtre pre_get_posts . Cela vous permettra de modifier la requête avant son exécution.

De même, lorsque vous interrogez des publications, vous devez toujours les réinitialiser à l'aide de wp_reset_postdata () . Cela restaurera la variable globale $post de la boucle de requête principale et vous ne rencontrerez aucun problème ultérieurement (par exemple, les catégories étant exclues, car dans votre boucle secondaire, vous les avez exclues et avez oublié de réinitialiser la requête).

Utiliser l'objet WP_Query ()

La création d'une instance distincte de l'objet WP_Query est simple:

$query_args = array(
                'post_type' => 'post',
                'post_per_page' => 10
            ); 

$my_query = new WP_Query($query_args);

if( $my_query->have_posts() ):
    while( $my_query->have_posts() ): $my_query->the_post();
       //My custom query loop
    endwhile;
endif;

wp_reset_postdata();

Notez que vous devez créer le tableau des arguments de la requête en fonction de vos spécifications. Pour plus de détails, consultez la page du codex WP_Query .

Utiliser get_posts ()

get_posts() est un wrapper pour une instance distincte d'un objet WP_Query . La valeur renvoyée est un tableau de post-objet.

global $post;

$args = array(
    'numberposts' => 5,
    'offset'=> 1,
    'category' => 1
);

$myposts = get_posts( $args );

foreach( $myposts as $post ) :
    setup_postdata($post); ?>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php endforeach;
wp_reset_postdata(); ?>

Pour plus d'informations, consultez la page de codex get_posts () .



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow