web-dev-qa-db-ja.com

編集画面のチェックボックスを使用した非階層型カスタム分類法 - >問題の保存

非階層カスタム分類法( 'property_features')を登録しました。編集画面のカスタムメタボックスに、この税のすべての条件のチェックボックスがあります。すべての用語が表示され、投稿に添付されているすべての用語が正しくチェックされます。

ここまでは順調ですね...

...しかし、チェックされていないボックスの1つをチェックして保存を押すと、wordpressは新しい用語を作成します。

例:

チェックされていないチェックボックスのコード保存後チェックされて見たい

<li id="property_features-11">
  <label class="selectit">
    <input value="11" name="tax_input[property_features][]" id="in-property_features-11" type="checkbox"> Term-Name
  </label>
</li>

結果のcheckobxのコード:

<li id="property_features-55" class="popular-category">
  <label class="selectit">
    <input value="55" name="tax_input[property_features][]" id="in-property_features-55" checked="checked" type="checkbox"> 11
  </label>
</li>

チェックボックスを作成するために使用するコード:

function display_property_features_meta_box($post) {

    $tax_name = 'property_features';
    $taxonomy = get_taxonomy($tax_name);
    $args     = array(
        'descendants_and_self'  => 0,
        'selected_cats'         => false,
        'popular_cats'          => false,
        'walker'                => null,
        'taxonomy'              => $tax_name,
    );

    ?>
    <div class="tagsdiv" id="tagsdiv-<?php echo $tax_name; ?>">


        <?php if ( current_user_can($taxonomy->cap->assign_terms) ) : ?>
        <div class="tagchecklist">

            <?php
            ?>
            <ul id="<?php echo $tax_name; ?>checklist" data-wp-lists="list:<?php echo $tax_name?>" class="tagschecklist form-no-clear">
                <?php wp_terms_checklist($post->ID, $args ) ?>
            </ul>

        </div>
        <?php endif; ?>


    </div>
    <?php
}

に変わったとき

'hierarchy' => true

register_taxonomy引数では、すべて問題なく動作します。

3
LichtAnd

これはコアのバグのようで、4.5でも発見されています。ドキュメンテーションではそうではないことが暗示されていますが、実際には "checkoxed"メタボックスを使用した非階層分類法の用語を選択することはできません。唯一の有効なオプションは "tag"スタイルのメタボックスです。

2
Mark Kaplun

カテゴリ(hierarchical = true)を使用する場合は、term_idを使用してください。

<input value="{{WP_Term->term_id}}"

もしあなたがタグ(hierarchical = false)を使っているなら、nameを使って作業するべきです:

<input value="{{WP_Term->name}}"
0
Adam Stybor