是否根据分类术语在自定义发布模板中显示Metabox?

时间:2012-04-11 作者:mathiregister

我不确定是否有解决方案,但我还是会问:)

我已经构建了一个自定义帖子模板和一个相关的自定义分类法。分类法作为自定义帖子模板的“类别”。

分类法中有“汽车、房子、木头”等术语。

我使用metaboxes 将自定义元数据添加到我的自定义帖子模板。

我想知道是否有可能在不同的税收条件下看到不同的元数据库?

e、 g.当我创建一个新帖子(使用我的自定义帖子模板)并选中“汽车”类别时,我想再添加一个metabox 输入其他数据。如果帖子与该分类法内的car术语相关联,则应显示此元框!

这有可能吗?

非常感谢。

1 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

此问题可能与以下问题重复:Only show metabox when date-value in other metabox is over?

大体上有两种方法可以实现这一目标。使用add_meta_boxes 钩子传递两个变量:post type和post。然后,仅当帖子有特定术语时才添加元框:

add_action( \'add_meta_boxes\', \'myplugin_add_my_custom_box\',10,2);

function myplugin_add_my_custom_box($post_type,$post){

 //Check if post has \'car\' term from \'my-tax\' taxonomy. If not don\'t add metabox.
 if( ! has_term( \'car\', \'my-tax\', $post ) )
     return

 add_meta_box( 
    \'myplugin_sectionid\',
    __( \'My Post Section Title\', \'myplugin_textdomain\' ),
    \'myplugin_metabox_callback\',
    \'event\' 
);      
}
这种方法的好处是,它更稳定,不依赖javascript,并且比简单地隐藏metabox(第二种选择)更“脏”。使用javascript的好处是,您可以让它“活”起来(因此添加“car”一词会让它出现,删除它会让它消失)。

Note: 隐藏时,您需要清除任何值,以便隐藏的元框不会发布您或WordPress随后保存的任何数据。

此方法如下所述:Toggle admin metabox based upon chosen page template

结束

相关推荐

WordPress炼金术仅在特定页面上放置自定义Metabox

我想把我只有的自定义metabox放在主页上,但我不知道该怎么做。我使用下面的方法将自定义元框添加到所有页面。如何选择主页或主页。php模板或那个ID。我真的不确定语法。<?php $custom_mb = new WPAlchemy_MetaBox(array ( \'id\' => \'_custom_meta\', \'title\' => \'Add images to home page slider\', \'t