0

使用 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
}
4

0 回答 0