web-dev-qa-db-fra.com

wordpress wp_list_pages aide

Dans mon environnement wordpress, j'ai un certain nombre de pages et un type de message personnalisé appelé casestudy. J'ai configuré un page-clients.php qui possède une partie de son propre contenu. J'utilise ensuite la fonction query_posts() pour extraire tous les messages avec le type d'étude de cas.

Lors de la visualisation d'une seule étude de cas, je souhaite montrer un navigateur, celui-ci doit contenir les liens vers les pages, les clients, les études de cas et les études de cas sous-jacentes. Je souhaite ajouter tous les articles de type "casestudy" personnalisé. jusqu'ici j'ai suivi,

<?php wp_list_pages(array('include' => '154, 136', 'title_li' => '', 'sort_column' => 'ID', 'sort_order' => 'DESC', 'depth' => '1')); ?>

Comment puis-je répertorier tous les postes d'étude de cas aussi, peut-on le faire avec wp_list_pages()

1
sico87

La fonction wp_list_pages() utilise get_pages(), qui accepte une clé de tableau de arguments post_type. Vous pouvez donc utiliser la même clé de tableau d'arguments dans `wp_list_pages ():

<?php
wp_list_pages( array(
    'post_type' => 'casestudy'
) );
?>

Malheureusement, il semble que la valeur post_type doit être une chaîne , plutôt qu'un tableau (c'est-à-dire, si je lis la source correctement); ce qui signifie que wp_list_pages() ne peut gérer qu'un seul type de message à la fois. Si vous avez besoin de tout lister dans un menu, vous pouvez essayer de les concaténer:

<?php

$pagelist = wp_list_pages( array( 
    'include' => '154, 136', 
    'title_li' => '', 
    'sort_column' => 'ID', 
    'sort_order' => 'DESC', 
    'depth' => '1'
    'echo' => false
) );

$casestudylist = wp_list_pages( array(
    'post_type' => 'casestudy',
    'title_li' => '',
    'echo' => false
) );

$concatenatedlist = $pageslist . $casestudylist;
?>

<ul>
<?php echo $concatenatedlist;
</ul>

Références Codex:

1
Chip Bennett