wordpress wp_list_pages help

In my wordpress enviroment, I have a number of pages, and I also have a custom post type called casestudy. I have setup a page-clients.php that has some of it’s own content on, I then use the query_posts() function to pull in all the posts with the post type casestudy.

When viewing a single case study I wanting to show a nav, this nav needs to contain the links to pages, clients, and case study and underneath case studies I want to add all the posts that are of the custom post type ‘casestudy’ so far I have following,

Read More

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

How can I lists all the casestudy posts also, can it be done with wp_list_pages()

Related posts

Leave a Reply

1 comment

  1. The wp_list_pages() function uses get_pages(), which accepts a post_type argument-array key, so you can use that same argument array key in `wp_list_pages():

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

    Unfortunately, it looks like the post_type value must be a string, rather than an array (that is, if I’m reading the source correctly); which means that wp_list_pages() can only handle one post-type at a time. If you need to list all in one menu, you could try concatenating them:

    <?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>
    

    Codex references: