使用 Meta Boxes 插件,有没有办法限制元框只显示在具有特定分类的页面上?
$meta_boxes[] = array(
'id' => 'sponsor_list',
'title' => 'Sponsors',
'pages' => array( 'page' ),
'context' => 'normal',
'priority' => 'high',
'fields' => array(
array(
'name' => 'Sponsor Logos',
'desc' => 'Upload sponsor logos here',
'id' => $prefix . 'sponsor_logos',
'type' => 'image'
)
)
);
哪个有效,但显示在所有页面上。我希望元框只显示在具有特定分类的页面上。这是可能的,还是意味着创建一个带有 post_type 页面的新 CPT,然后将元框附加到它?
更新
这是分类法
// Location taxononomy
function create_artists_sites()
{
$labels = array(
'name' => _x( 'Festival Sites', 'taxonomy general name' ),
'singular_name' => _x( 'Festival Site', 'taxonomy singular name' ),
'search_items' => __( 'Search Festival Sites' ),
'all_items' => __( 'All Festival Sites' ),
'parent_item' => __( 'Parent Festival Sites' ),
'parent_item_colon' => __( 'Parent Festival Sites:' ),
'edit_item' => __( 'Edit Festival Site' ),
'update_item' => __( 'Update Festival Site' ),
'add_new_item' => __( 'Add New Festival Site' ),
'new_item_name' => __( 'New Festival Site Name' ),
'menu_name' => __( 'Festival Sites' ),
);
register_taxonomy('artists_sites', array('page'), array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'artists-sites' ),
));
}
元框已添加到所有页面
$meta_boxes[] = array(
...
'pages' => array( 'page' ),
我需要一个声明元的条件
if(any festival taxonomy is checked) {
show meta box
} else {
don't show meta
}
最终目标是我没有与 CMS 中特定页面无关的元框。
进一步考虑这一点,它也可能是页面模板的一个条件。
假设我有一个带有模板的页面:登陆
那么条件可能是:
if(page has landing template) {
show meta box
} else {
don't show meta
}