Change position of Featured image Metabox in wordpress

特征图片的位置一开始已经写死在Wordpress 核心里了,如果你想把它移到左边区域,或者边栏的靠前位置,下面或许是一个解决方案。

首先是去除掉特色图片的metabox,然后使用 add_meta_box 重新添加。 post_thumbnail_meta_box 是一个已经定义好的函数,可以直接调用。

前提:你必须在模板里已经启用 Post Thumbnails

add_theme_support( 'post-thumbnails' );
add_theme_support( 'post-thumbnails', array( 'post' ) );          // Posts only
add_theme_support( 'post-thumbnails', array( 'page' ) );          // Pages only
add_theme_support( 'post-thumbnails', array( 'post', 'movie' ) ); // Posts and Movies

然后:

add_action('do_meta_boxes', 'customposttype_image_box');

function customposttype_image_box() {
    remove_meta_box( 'postimagediv', '', 'side' );
    add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'side', 'high');
    add_meta_box('postimagediv', __('Page Featured Image'), 'post_thumbnail_meta_box', 'page', 'side', 'high');
}

在使用中发现,可能会对 custom post type 无效导致 特色图片的 metabox 消失。可能是因为注册 custom post type 的时间晚了,如果在 action “after_setup_theme” 的时候注册,运行正常!