自定义分类法作为复选框或下拉菜单


Answers:


15

您可能没有在register_taxonomy中将“ hierarchical”参数设置为true。这意味着它默认为false,这为您提供了类似标签的界面。

添加'hierarchical' => true到您的register_taxonomy。


哦,是的...谢谢!但是现在可以将其更改为复选框,甚至选择吗?我希望能够将此设置作为插件设置。
朱利安·F·韦纳特

1
将层级更改为true会在CPT的编辑屏幕上将界面更改为复选框。
vancoder

是的,确实可以,但是我希望能够在这些选项之间切换。我认为在层次结构与非层次结构之间进行切换不是一种好习惯。它不会只更改接口,对吗?
朱利安·F·韦纳特

好吧,分层使其成为...分层:)就我所知,您无法在2个界面之间切换。
vancoder

此解决方案不会创建复选框或下拉菜单。
Dev

17

从WP 3.7(https://core.trac.wordpress.org/ticket/14206)开始,您可以将此参数添加到register_taxonomy中:

'meta_box_cb' => 'post_categories_meta_box'

无需使分类法分层即可获取内置的复选框类别样式元框。

您也可以提供自己的回调函数来创建自己的元框(即带有下拉菜单)。


太好了,这正是我所需要的,而不必对分类法进行分层。谢谢
Alexander Holsgrove '16

这样做的问题在于,非分层和分层分类法具有需要保存的不同数据结构。对于如何解决这个问题,在这里看到的gist.github.com/gschoppe/...
P.加尔布雷思

此解决方案不会创建复选框或下拉菜单。
Dev

太好了!谢谢...我从不知道它的存在
Sam Holguin

-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(.....

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.