Create a dropdown with Custom Post Types as option in admin

I need to create a dropdown menu with “posts from a custom post type” as option.

This dropdown will be placed as custom meta box.

Read More

For example, I want all posts with the custom type “Video” as option in the select.

<select>
   <option>post title n°1<option>
   <option>post title n°2<option>
   ....
</select>

Thanks

Related posts

Leave a Reply

4 comments

  1. Here is the code I’m using in a project I’m working on.

    function generate_post_select($select_id, $post_type, $selected = 0) {
            $post_type_object = get_post_type_object($post_type);
            $label = $post_type_object->label;
            $posts = get_posts(array('post_type'=> $post_type, 'post_status'=> 'publish', 'suppress_filters' => false, 'posts_per_page'=>-1));
            echo '<select name="'. $select_id .'" id="'.$select_id.'">';
            echo '<option value = "" >All '.$label.' </option>';
            foreach ($posts as $post) {
                echo '<option value="', $post->ID, '"', $selected == $post->ID ? ' selected="selected"' : '', '>', $post->post_title, '</option>';
            }
            echo '</select>';
        }
    

    $select_id is used as the name and id of the select, $post_type is the type you want to be made into the select and $selected is the post id you want selected in the select box.

  2. If you already know how to make the custom meta box, you can use

      wp_dropdown_categories(); 
    

    maybe like so :

    wp_dropdown_categories('taxonomy=your_texonomy&hide_empty=0&orderby=name&name=types&show_option_none=Select type);
    
  3. Since my last answer was considered more of a question. I’ll answer with more of an answer. You could use the Magic Fields plugin 2 (note the 2 because that is a different but improved plugin). You can choose a ‘related type’ field from the admin boxes they offer. Of course you still can excavate how it’s done in this plugin if you want to create this function yourself, but at least there is somebody who figured it out.