Display metabox conditionally

时间:2014-03-11 作者:Ronnieinspain

我已经搜索了左、右和中,相信这在WordPress中不存在内置选项;是否有任何方法可以根据元键值的内容在自定义post type编辑屏幕中显示(或不显示)元框?

我唯一的想法是在隐藏字段中显示元键的内容,使用jQuery检索其值,并根据其内容删除包含元框pr not的div。

metabox的内容非常占用资源,因此我正在寻找另一种解决方案。

1 个回复
SO网友:s_ha_dum

当然

function generic_cb($post) {
  echo \'This is a test of the emergency callback system.\';
}

add_action( \'add_meta_boxes_page\', \'conditional_meta_box\' );
function conditional_meta_box($post) {
  $meta = get_post_meta($post->ID,\'meta_key\',true);
  if (\'abc\' === $meta) {
    add_meta_box(
        \'emcb\',
        \'CB Test\',
        \'generic_cb\',
        \'page\',
        \'normal\',
        \'high\'
    );
  }
}
Theadd_meta_boxes* 钩子穿过$post 变量,因此使用它检查有问题的元键并有条件地添加元框。有一个通用的add_meta_boxes 始终运行的挂钩,但其他add_meta_boxes_CPTSLUG 仅限于特定立柱类型的挂钩。我的示例仅适用于页面。

如果你的内容如你所说是资源密集型的,我会调查transients.

结束