非階層カスタム分類法( '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
引数では、すべて問題なく動作します。
これはコアのバグのようで、4.5でも発見されています。ドキュメンテーションではそうではないことが暗示されていますが、実際には "checkoxed"メタボックスを使用した非階層分類法の用語を選択することはできません。唯一の有効なオプションは "tag"スタイルのメタボックスです。
カテゴリ(hierarchical = true
)を使用する場合は、term_id
を使用してください。
<input value="{{WP_Term->term_id}}"
もしあなたがタグ(hierarchical = false
)を使っているなら、name
を使って作業するべきです:
<input value="{{WP_Term->name}}"