我创建了一个自定义元框,用于在管理区域的帖子显示中显示一些内容,并希望它显示在侧边栏而不是wysiwyg编辑器下方。我在上下文中添加了“side”但没有任何反应!我已经玩了好几个小时,没有运气。
这是我的代码:
function add_custom_meta_box() {
add_meta_box (
'custom_meta_box',
'Custom Meta Box Title',
'show_custom_meta_box',
'post',
'side',
'high'
);
}
add_action('add_meta_boxes', 'add_custom_meta_box');
function show_custom_meta_box() {
// here i have all the code
}
答案 0 :(得分:1)
根据此Q&A改编,以下内容将强制自定义元框进入侧栏的第二个位置。
检查评论并注意admin_init
的警告
它仅在用户没有自己重新排列位置时才有效。注册新用户时,会为他设置位置,因为挂钩admin_init
和user_register
会附加到同一个回调函数。
// This fires at **every** page load, a better hook must be found
add_action( 'admin_init', 'set_user_metaboxes_so_14183498' );
// This fires when a new user is created
add_action( 'user_register', 'set_user_metaboxes_so_14183498' );
function set_user_metaboxes_so_14183498( $user_id = null )
{
// This is the metakey we will need to update
$meta_key = 'meta-box-order_post';
// So this can be used without hooking into user_register
if( !$user_id )
$user_id = get_current_user_id();
// Set the default order if it has not been set yet by the user.
// These are WP handles, PLUS our custom meta box handle
if ( ! get_user_meta( $user_id, $meta_key, true ) )
{
$meta_value = array(
'side' => 'submitdiv,custom_meta_box,formatdiv,postimagediv',
'normal' => 'postcustom,commentsdiv,slugdiv,revisionsdiv',
'advanced' => '',
);
update_user_meta( $user_id, $meta_key, $meta_value );
}
}