在页面顶部显示的add_meta_box()输入字段

时间:2018-11-22 14:50:46

标签: wordpress custom-post-type

感谢您抽出宝贵的时间阅读本文。我已经浏览过任何类似的问题,但没有找到类似的案例。这可能真的很愚蠢。这是我第一次使用add_meta_box()

基本上,我正在尝试向自定义帖子类型添加一个meta框。该字段本身正在显示,但位于页面顶部(通常会出现错误)的右侧

查看屏幕截图:

meta_box displaying at the top of page

这是我用来添加框和回调的代码。这是在课堂中。

public function room_settings_meta_box() {
    add_meta_box(
        'room-settings',
        __( 'Room Settings', 'book-it' ),
        'room_settings_meta_box_callback',
        'rooms'
    );
}

public function room_settings_meta_box_callback( $post ) {

    wp_nonce_field( 'room_settings_nonce', 'room_settings_nonce' );

    $value = get_post_meta( $post->ID, 'room-settings', true );

    echo '<input style="width:100%" id="room-settings" value = "' . esc_attr( $value ) . '" name="room-settings">';
}

我对get_post_meta($key)也有些困惑。那是meta-box ID吗?

我看到的所有其他示例似乎都以underscore (_META_KEY)

开头

如果我自己找到解决方案,我将确保对其进行编辑。

1 个答案:

答案 0 :(得分:0)

我怀疑您需要设置wordpress add_meta_box()的第5个上下文参数,并声明您希望元框出现在“普通”上下文中。

public function room_settings_meta_box() {
    add_meta_box(
        'room-settings',
        __( 'Room Settings', 'book-it' ),
        'room_settings_meta_box_callback',
        'rooms',
        'normal',
        'high'
    );
}

以我的RaceCPT.php为例