web-dev-qa-db-ja.com

Adminのオプションとして[カスタム投稿タイプ]を使用してドロップダウンを作成する

オプションとして " posts from custom post type"でドロップダウンメニューを作成する必要があります。

このドロップダウンはカスタムメタボックスとして配置されます。

たとえば、選択のオプションとしてカスタムタイプ「ビデオ」を持つすべての投稿が必要です。

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

ありがとう

4
Steffi

これが私が取り組んでいるプロジェクトで使っているコードです。

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は選択の名前とIDとして使用され、$post_typeは選択に含めるタイプ、そして$selectedは選択ボックスで選択したい投稿IDです。

3
Manny Fleurmond
wp_dropdown_pages(array('post_type'=>'video'));

参照してください: http://codex.wordpress.org/Function_Reference/wp_dropdown_pages

6
skeg64

カスタムメタボックスの作り方をすでに知っているなら、あなたは使うことができます。

  wp_dropdown_categories(); 

多分そうです:

wp_dropdown_categories('taxonomy=your_texonomy&hide_empty=0&orderby=name&name=types&show_option_none=Select type);
1
krembo99

私の最後の答えはもっと質問と考えられていたので。もっと答えて答えましょう。あなたはMagic Fieldsプラグイン2を使うことができます(それは異なるが改良されたプラグインであるので2に注意してください)。提供している管理ボックスから「関連タイプ」フィールドを選択できます。もちろん、この関数を自分で作成したいのであれば、このプラグインでそれがどのように行われているかをまだ掘り出すことはできますが、少なくとも誰かがそれを考え出した人がいます。

0
Sjoerd