チェックボックスまたはドロップダウンとしてのカスタム分類


回答:


15

register_taxonomyで 'hierarchical'引数をtrueに設定していない可能性があります。これは、デフォルトがfalseであることを意味し、タグのようなインターフェースを提供します。

'hierarchical' => trueregister_taxonomyに追加します。


そうそう…ありがとう!しかし、これをチェックボックスに変更したり、選択したりすることは可能ですか?これをプラグイン設定に設定できるようにしたいのですが。
ジュリアンF.ウェイナート2013

1
階層をtrueに変更すると、インターフェイスがCPTの編集画面のチェックボックスに変更されます。
バンコーダー2013

はい、あります。ただし、これらのオプションを切り替えられるようにしたいと考えています。階層型とそうでないものを切り替えるのは良い習慣だとは思いません。インターフェースだけが変わるわけではないですよね?
ジュリアンF.ウェイナート2013

ええと、階層型になっています...階層型:)私の知る限り、2つのインターフェイスを切り替えることはできません。
バンコーダー2013

このソリューションでは、チェックボックスやドロップダウンメニューは作成されません。
Dev

17

WP 3.7(https://core.trac.wordpress.org/ticket/14206)以降では、この引数をregister_taxonomyに追加できます。

'meta_box_cb' => 'post_categories_meta_box'

分類を階層化せずに、組み込みのチェックボックスカテゴリスタイルのメタボックスを取得します。

また、代わりに独自のコールバック関数を提供して、独自のメタボックスを作成することもできます(つまり、ドロップダウン付き)。


これは、分類法を階層化する必要なく、まさに必要なものです。ありがとう
Alexander Holsgrove 2016

これの問題は、非階層的および階層的分類が、保存する必要のある異なるデータ構造を持っていることです。この問題の修正方法については、こちらgist.github.com/gschoppe/…を
P. Galbraith

このソリューションでは、チェックボックスやドロップダウンメニューは作成されません。
Dev

これは巨大です!ありがとう...私はそれが存在することを知らなかった
サムホルギン

-1

既存のプラグインの期間をチェックボックスに変更する場合は、既存のregister_taxonomy()を編集する必要があります。

add_action( 'init', 'change_room_term_to_checkbox', 999);
function change_room_term_to_checkbox()
{
    $tax = get_taxonomy('roomtype');
    $tax->meta_box_cb = 'post_categories_meta_box';
    $tax->hierarchical = true;
}

'roomtype'は、register_taxonomy( 'roomtype'、array(.....

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.