WordPress
Interroger les messages
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
- Paramètres d'auteur
- Paramètres de catégorie
- Paramètres de balise
- Paramètres de taxonomie
- Paramètre de recherche
- Paramètres de poste et de page
- Paramètres de mot de passe
- Paramètres de type
- Paramètres d'état
- Paramètres de pagination
- Paramètres de commande et de commande
- Paramètres de date
- Paramètres de champs personnalisés
- Paramètres d'autorisation
- Paramètres de type MIME
- Paramètres de mise en cache
- Paramètre des champs de retour
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 () .