WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a custom post type, Doctors, that I need to create a dropdown nav for. I just want it to populate a select list with all the posts of that CPT and navigate to that post on selection.

I'm doing a couple other dropdowns with wp_dropdown_categories, but I guess there's no built in function for listing a post type?

share|improve this question

You'll need to use get_posts and roll your own drop down.

Something like this (somewhere in functions.php):

function wpse34320_type_dropdown( $post_type )
    $posts = get_posts(
            'post_type'  => $post_type,
            'numberposts' => -1
    if( ! $posts ) return;

    $out = '<select id="wpse34320_select"><option>Select a Doctor</option>';
    foreach( $posts as $p )
        $out .= '<option value="' . get_permalink( $p ) . '">' . esc_html( $p->post_title ) . '</option>';
    $out .= '</select>';
    return $out;

Then in your template...

<?php echo wpse34320_type_dropdown( 'doctors' ); ?>
share|improve this answer
Thanks so much! I'll try that out. I need to finally learn PHP... – Holden Nov 21 '11 at 13:10
Can't seem to get this working - any suggestions? I'm not even seeing a dropdown... – Holden Nov 21 '11 at 19:55

I've added a javascript line to 'Jump' directly to the selection.


$out = '<select id="wpse34320_select"><option>Select a Doctor</option>';


$out = '<form name="jump1"><select name="jump2" id="wpse34320_select" OnChange="location.href=jump1.jump2.options[selectedIndex].value">><option>Select a doctor</option>';
share|improve this answer
This is really, really annoying for keyboard users. They cannot reach the second page now. – toscho Feb 5 '12 at 13:07

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.