如何仅在特定页面ID上显示自定义元框

时间:2013-05-18 作者:Travis Pflanz

我正在使用Magic Fields 2 用于自定义元框和自定义字段,但这种情况适用于任何元框。

我有一个自定义的元框,我只想显示在3个特定的页面ID上。

function mf_1_remove_meta_boxes() {

    if( !in_array($_GET[\'post\'], array(\'194\',\'185\',\'2\') ) ):
        remove_meta_box( \'mf_1\', \'page\', \'normal\' );
}
使用更新Bainternet\'s solution, 代码起作用。尽管如此,一个新问题变得显而易见。创建新页面时,元框立即可见,然后在页面保存后消失,因为ID与指定的ID不匹配。

更新2修改了上述代码,以更正新(未保存)页面上出现元框的问题。它也被修改为一个完整的工作代码。将删除所有用户的元框。

要删除除管理员以外的所有人的元框,请执行以下操作:

function mf_1_remove_meta_boxes() {

    if( !is_admin())
        return;

    if( !in_array($_GET[\'post\'], array(\'194\',\'185\',\'2\') ) ):
        remove_meta_box( \'mf_1\', \'page\', \'normal\' );
}

2 个回复
最合适的回答,由SO网友:Bainternet 整理而成

一个简单而干净的解决方案就是使用!in\\u阵列ex:

function mf_1_remove_meta_boxes() {

    if( !is_admin() && !isset( $_GET[\'post\'] ) )
        return;

    if( !in_array($_GET[\'post\'], array(\'194\',\'185\',\'2\') ) )
        remove_meta_box( \'mf_1\', \'page\', \'normal\' );
}
这样,您就可以在数组中添加ID,并且可以添加任意数量的ID

SO网友:Ciprian

尝试:

if($_GET[\'post\'] != 194 || $_GET[\'post\'] != 185 || $_GET[\'post\'] != 2)

应该是这样的。

结束

相关推荐

将Metabox日期月份编号转换为单词

我使用带有日期(日、月和年)的自定义metabox。问题是,当我尝试将日期数字转换为日期字时,例如10是10月。我使用此代码:function eventposttype_get_the_month_abbr($month) { global $wp_locale; for ( $i = 1; $i < 13; $i = $i +1 ) { if ( $i == $month ) $monthabbr = $wp