get_posts();

Des exemples de la fonction de récupération d’articles de Wordpress

La base

Tu viens de créer ton thème WordPress personnalisé et tu veux pouvoir afficher dans ta page des articles ou d’autres éléments définis dans l’administration de ton site WordPress. Et bien, grâce à la fameuse fonction get_posts(), tu vas pouvoir afficher ce que tu veux, où tu veux !

Pour commencer, tu vas récupérer tous les articles de façon basique.

<?php
	$list_posts = get_posts();
	print_r($list_posts);	
?>

Si tu rafraîchis la page, tu verras un tableau d’objets qui représente chacun de tes articles. Tu peux directement manipuler ce tableau avec du PHP et personnaliser l’affichage.

Les paramètres

Maintenant que tu sais récupérer des articles, tu vas avoir envie d’aller plus loin. Et bien sache qu’il est possible de filtrer la récupération des données en renseignant un tableau de paramètres.
Sur le codex WordPress, il y a la liste des différents paramètres possibles. Ici, nous allons simplement réaliser deux ou trois exemples concrets pour comprendre le fonctionnement.

La première chose que j’ai envie de faire, c’est de récupérer seulement les cinq derniers articles (les plus récents quoi). Je vais donc utiliser le paramètre posts_per_page pour limiter la récupération et trier les éléments par date avec orderby.

<?php
	$args = array(
		"posts_per_page"  => 5,
		"orderby"         => "date",
		"order"           => "DESC",
	)
	$posts = get_posts($args);
?>

Je peux aussi trier mes articles en mode random en changeant la valeur du paramètre orderby, c’est ce que j’ai utilisé sur la home page de mon site.

<?php
	$args = array(
		'orderby'   => 'rand'
	);
	$posts = get_posts($args);
?>

Je peux aussi récupérer les posts d’une catégorie en particulier, via sont ID.

<?php
	$args = array(
		'posts_per_page'    => -1,
		'post_type'         => 'post',
		'post_status'       => 'publish',
		'category'          => 6
	);
	$posts = get_posts($args);
?>

Category

Pour faire des recherches sur les category ou les taxonomy, j’utilise tax_query qui est très puissant. Là par exemple, je recherche tous les articles dont le nom de la catégorie est « WordPress ».

<?php
	$args = array(
	    'posts_per_page'    => -1,
	    'post_type'         => 'post',
	    'post_status'       => 'publish',
	    'tax_query'         => array(
	        array(
	            'taxonomy' => 'category',
	            'field'    => 'name', 
	            'terms'    => 'wordpress'
	        )
	    )
	);
	$posts = get_posts($args);
?>

Meta

Autre truc super utile, c’est la recherche par champ méta via meta_query. Dans WordPress, chaque post a des métas associés et c’est toujours cool de pouvoir balancer facilement une recherche dessus.

$args = array(
	"posts_per_page"  => 1,
	"post_type" 	  => "panier",
	"meta_query" 	  => array(
		array(
		    'key' => 'commande_id',
		    'value' => 23	
		)
	),
);

Si tu veux aller encore plus loin, n’hésite surtout pas à consulter le codex de WordPress, il y a plein d’exemples et la liste de tous les paramètres que tu peux utiliser pour la fonction.

14/02/2015

Yann Vangampelaere - nouslesdevs -

Sinon jete un coup d’oeil aux autres catégories

Ma boîte aux lettres

Tu veux me demander quelque chose ?