我想将自定义分类法列表显示为下拉列表。
“我在这里找到了解决办法,”亚历克苏夫回答道
Display a custom taxonomy as a dropdown on the edit posts page
但问题是,当我使用选定的分类法发布帖子时,它会自动创建另一个分类法。
我不能对他的回答发表评论,因为我没有50%的声誉。
这是我的密码
function realty_type() {
$args = array(
\'show_ui\' => true,
\'meta_box_cb\' => \'drop_cat\',
);
register_taxonomy( \'realty_type\', array( \'my-CPT\' ), $args );
}
// Hook into the \'init\' action
add_action( \'init\', \'realty_type\', 0 );
function drop_cat( $post, $box ) {
$defaults = array(\'taxonomy\' => \'category\');
if ( !isset($box[\'args\']) || !is_array($box[\'args\']) )
$args = array();
else
$args = $box[\'args\'];
extract( wp_parse_args($args, $defaults), EXTR_SKIP );
$tax = get_taxonomy($taxonomy);
?>
<div id="taxonomy-<?php echo $taxonomy; ?>" class="acf-taxonomy-field categorydiv">
<?php
$name = ( $taxonomy == \'category\' ) ? \'post_category\' : \'tax_input[\' . $taxonomy . \']\';
echo "<input type=\'hidden\' name=\'{$name}[]\' value=\'0\' />"; // Allows for an empty term set to be sent. 0 is an invalid Term ID and will be ignored by empty() checks.
?>
<? $term_obj = wp_get_object_terms($post->ID, $taxonomy ); //_log($term_obj[0]->term_id)?>
<ul id="<?php echo $taxonomy; ?>checklist" data-wp-lists="list:<?php echo $taxonomy?>" class="categorychecklist form-no-clear">
<?php //wp_terms_checklist($post->ID, array( \'taxonomy\' => $taxonomy) ) ?>
</ul>
<?php wp_dropdown_categories( array( \'taxonomy\' => $taxonomy, \'hide_empty\' => 0, \'name\' => "{$name}[]", \'selected\' => $term_obj[0]->term_id, \'orderby\' => \'name\', \'hierarchical\' => 0, \'show_option_none\' => \'—\' ) ); ?>
</div>
<?php
}
最合适的回答,由SO网友:Mais_Cule 整理而成
经过反复尝试,我终于找到了解决方案。
在注册分类参数中,我只需设置\'hierarchical\' => true
使其停止递增分类法并继续自动添加分类法。
我不知道为什么在查看文件后会出现问题,如果有人知道原因,请解释。
function realty_type() {
$args = array(
\'show_ui\' => true,
\'meta_box_cb\' => \'drop_cat\',
\'hierarchical\' => true
);
register_taxonomy( \'realty_type\', array( \'YOUR_POST_TYPE\' ), $args );
}
// Hook into the \'init\' action
add_action( \'init\', \'realty_type\', 0 );