web-dev-qa-db-ja.com

チェックボックス付きの用語として非階層的分類法を表示する方法

カスタム投稿タイプの投稿の追加/編集管理画面に、非階層型カスタム分類法を表示したいです。明らかに、カスタム分類が非階層的であるとき、表示されるメタボックスはタグに似ています - それは自動提案を伴うテキストフィールドです。

しかし、私はチェックボックス用語のリストとしてフラットで非階層的な分類表示を持つことにもっと興味があります。基本的に、子用語を追加できなかったことを除けば、機能はカテゴリと同じであることを望みます。

確かにこれは他の開発者が行ったことですが、通常のGoogle検索ではあまり得られませんでした。どうやら これがデフォルトの動作です カスタム分類法がもともとv2.8で導入されたとき。

Example of non-hierarchical taxonomy with checkboxes

私は本当にプラグインソリューションを探していませんが、プラグインからのコード例は問題ないでしょう。クライアント向けにサイトを開発する場合、特定の投稿タイプに対して事前に設定されている用語のリストを表示できるようにすると便利な場合があります。顧客は、追加の子用語ではなく、追加の用語を追加することを許可されるべきです。

5
Philip Downer

あなたが既にこれについての解決策を見つけたかどうかはわかりませんが、私が昨日似たようなものを捜したとき、私はWPtutsでこのチュートリアルがとても役に立ちました。ラジオボタンを使用していますが、チェックボックスでも機能するように簡単に変更できます。 http://wp.tutsplus.com/tutorials/creative-coding/how-to-use-radio-buttons-with-taxonomies/ /

3
Alex Hommel

私は actual のチェックボックスを扱うためのソリューション(上記のtutsplusチュートリアルリンクに基づく)を手に入れました: http://wordpress.org/support/topic/display-tag-admin-box- like-categories-without-hierarchy tutsplusリンクがアドレス指定しているメタボックスの「最も使用されている」タブを無視しますが、個人的には単純にしています。

4
Chrisdigital

私のフランス人を許してください、しかし、なぜ組み込みのhierarchy = trueを使わないでください、そして、その後、admin cssを使ってすべての親dropboxを隠しますか?

2
jam

次のように、階層を使用して親選択を非表示にします。

function hide_taxonomy_parent( $slug ) {
    add_action( 'admin_head', function () use ( $slug ) {
        echo "<style>
            .taxonomy-{$slug} .term-parent-wrap,
            [for='new{$slug}_parent'],
            #new{$slug}_parent {
                display: none !important;
                visibility: hidden !important;
            }
        </style>";
    } );
}

hide_taxonomy_parent( 'brand' );
1
Maxwell s.c

私はそれをするだろう:

$add_action('add_meta_boxes_my_posttype', 'my_add_meta_boxes');

function my_add_meta_boxes ($post) {

    $taxoms = array('my_taxonomy', 'my_second_taxonomy');

    foreach ( get_object_taxonomies( $post ) as $tax_name ) {
        if( !in_array($tax_name, $taxoms) ) continue;

        $taxonomy = get_taxonomy($tax_name);
        if ( ! $taxonomy->show_ui )
            continue;

        $label = $taxonomy->labels->name;

        if ( !is_taxonomy_hierarchical($tax_name) ) {
            add_meta_box($tax_name . 'div', $label, 'post_categories_meta_box', null, 'side', 'core', array( 'taxonomy' => $tax_name ));
            remove_meta_box('tagsdiv-' . $tax_name, null, 'side');
        }
    }
}

あとは、あなたまでフォームの親選択ボックスを隠す

1
Laurent