Ajouter une limite à wp_list_pages dans WordPress
wp_list_pages est une fonction bien pratique de WordPress permettant d’afficher une liste non ordonnée de pages. Si elle propose de nombreux paramètres (consultables ici), il n’est pas possible de le limiter la sortie à un nombre donné de page. Pour y parvenir, la solution la plus simple est donc stocker le résultat de wp_list_pages dans une variable grâce au paramètre echo=0 de la fonction puis d’afficher via un « for » uniquement le nombre de pages souhaitées.
Exemple : Je souhaite afficher quelque part sur mon site les dix dernières pages mis à jour :
<?php
//Nombre de pages
$nbpages = 10;
//Requête et stockage des résultats
$pages = wp_list_pages("title_li=&depth=-1&sort_column=post_modified&sort_order=DESC&echo=0");
//Affichage
$pages_arr = explode("\n", $pages);
for($i=0;$i<$nbpages;$i++){
echo $pages_arr[$i];
}
?>





Par BoiteaWeb
Il n’y a pas de meilleur moyen c’est vrai.
Code à garder sous la main !
Pingback: Ressources pour concepteur de modèle pour Internet
Par kzee
Merci bien, je cherchais cette fonction depuis un moment.
Par contre j’ai une question concernant une évolution en widget.
J’ai modifié la partie wp_list_pages pour correspondre à mon besoin(*explication plus bas)
et j’arrive avec un fonction dans un widget qui ressemble à ca :
function widget($args,$instance){
//Nombre de pages
$nbpages = $instance["limit"];
//Requête et stockage des résultats
$pages = wp_list_pages(‘title_li=&child_of=’.$post->post_parent.’&echo=0&depth=1′ );
if (is_page( )) {
$page = $post->ID;
if ($post->post_ID) {
$page = $post->post_parent;
}
$children=wp_list_pages(‘echo=0&child_of=’ . $post->ID . ‘&title_li=’);
if ($children) {
$pages = wp_list_pages(‘echo=0&depth=1&child_of=’ . $page . ‘&title_li=’);
}
}
//Affichage
$pages_arr = explode(« \n », $pages);
for($i=0;$i http://wordpress.org/support/topic/widget-using-wp_list_pages-display-result-problem?replies=2
Une idée ?
Merci.
Par kzee
Arf ca a coupé :/
Les codes sont dispo sur wordpress.org
http://wordpress.org/support/topic/widget-using-wp_list_pages-display-result-problem?replies=2
Par kzee
J’ai trouvé (si jamais).
Il manquait une requete:
» global $post; «