Adding custom field values to wp_list_pages

If all you want is to list some recent portfolio items in the sidebar, you’re overkilling it by trying to emulate the wp_list_pages function. You can do this with a simple custom query. (Unless you really want to do this with wp_list_pages for some reason, but I can’t think of why you would.)

// Set up the query args
$arr_query_args = array(
    'numberposts'  => 5, // Or however many posts you want to show
    'orderby'      => 'post_title',
    'post_type'    => 'our-work'
);

// Run the query
$arr_posts = get_posts( $arr_query_args );

// Global the post obj
global $post;

foreach( $arr_posts as $this_post ) { // For every post retrieved

    // Now you have the (mostly) complete post object. Print out whatever you want from it!

    $permalink = get_permalink($this_post->ID); // Get the post's permalink

    echo '<a href="' . $permalink . '"';

    // If this link is for the current page, add a class
    if(is_object($post) && $post->ID == $this_post->ID) {
        echo ' class="current_page_item"';
    }

    echo '>';
        echo $this_post->post_title . ': ';
    echo '</a>';

    // You can use get_post_meta to grab meta values for this post
    echo(get_post_meta($this_post->ID, 'your-custom-field-key', true));

}

I suppose you could wrap that in a function and use it as a template tag if you want to pass different args to it in different places.