如何隐藏自定义字段列表中的元框值?

时间:2015-09-10 作者:Foolish Coder

我已经创建了一个元盒:

function drama_description_metabox_markup() {
    global $post;
    $drama_description_metabox_markup = get_post_meta( $post->ID, \'drama_description\', true );
    ?>
        <div>
            <label for="meta-box-text">Description</label>          
            <textarea name="drama_description" style="width: 100%"><?php if ($drama_description_metabox_markup) { echo $drama_description_metabox_markup; }?></textarea>
        </div>
<?php }

function drama_description_metabox(){
    $post_types = array ( \'dramas\', \'reality_shows\' );
     foreach( $post_types as $post_type )
    {
        $id             = \'drama-description\';
        $title          = \'Description\';
        $callback       = \'drama_description_metabox_markup\';
        $screen         = $post_type;
        $context        = \'normal\';
        $priority       = \'high\';
        $callback_args  = \'null\';
        add_meta_box($id, $title, $callback, $screen, $context, $priority, $callback_args);
    }
}

add_action("add_meta_boxes", "drama_description_metabox");
这就是我保存元框值的方式:

function save_drama_description_meta_box($post_id)
{
    global $post;   
    //skip auto save
    if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) {
        return $post_id;
    }
    //check for DRAMAS and REALITY_SHOWS post type only
if( $post->post_type == ("dramas" || "reality_shows") ) {
        if( isset($_POST[\'drama_description\']) ) { 
            update_post_meta( $post->ID, \'drama_description\', $_POST[\'drama_description\'] );
        }
    }
}

add_action("save_post", "save_drama_description_meta_box", 10, 3);
现在是元键drama_description 显示在两个meta boxcustom fields list 地区

LIST

LIST2

我想使用自定义字段列表。所以我不想完全隐藏自定义字段列表框。

上述元键drama_description 应该从自定义字段列表中隐藏,但不能从元框中隐藏。

我读过一些旧文章,说在metabox使用的元键前面加下划线_

但我不知道该在哪里加下划线。根据我的上述代码,我必须将_ 要从自定义字段列表中隐藏元键?

1 个回复
SO网友:Dmitry Mayorov

只需在元框ID之前添加一个下划线,那么添加元框的代码部分如下所示:

$id             = \'_drama-description\';
$title          = \'Description\';
$callback       = \'drama_description_metabox_markup\';
$screen         = $post_type;
$context        = \'normal\';
$priority       = \'high\';
$callback_args  = \'null\';
add_meta_box($id, $title, $callback, $screen, $context, $priority, $callback_args);
您还需要替换drama-description_drama-description 在保存数据的部分。希望有帮助。

相关推荐

仅为主页显示Metabox

我将尝试使用设置字段将metabox添加到主页,但出现问题,请帮助我。删除时,metabox不会显示在页面编辑器中if statement 它显示在所有页面上。add_action(\'add_meta_boxes\', \'metabox_homepage_videos\'); function metabox_homepage_videos($post) { if (is_front_page()): add_meta_box(\'metabox