Answers:
您可以使用remove_meta_box删除默认元框,然后使用add_meta_box将它们重新添加到其他位置:
add_action('do_meta_boxes', 'wpse33063_move_meta_box');
function wpse33063_move_meta_box(){
remove_meta_box( 'postimagediv', 'post', 'side' );
add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'post', 'normal', 'high');
}
这会将其从侧栏中删除,并将其添加到主栏中。post
在此示例中,将其更改为自定义帖子类型的名称。
add_meta_box()
需要一个$callback
函数名称,我怎么知道WordPress使用的函数名称?假设我要对侧边栏meta_box“类别”(#categorydiv)做同样的事情吗?
/wp-admin/edit-form-advanced.php
您将看到WordPress将所有核心元框及其使用的回调和参数添加到何处。对于类别来说post_categories_meta_box
。
我也为此感到挣扎。我真的没有找到一种重新定义布局/顺序的干净方法-尤其是因为当用户拖动框时可以更改它。
我喜欢用wordpress做事(通常会得到回报),而不是与之冲突,而wordpress做事的方式如下:
wordpress会存储每个用户在每个屏幕上的拖动位置,并且根据要使用的页面/屏幕,有一堆用户元数据键。
因此,您可以为每个新用户添加一个操作或过滤器,以按照您希望默认设置的方式设置用户。
1)拖动并排列您想要影响的页面,然后2)在您的用户元数据的phpmyadmin中查找您的ID,并查看wp存储在其中的内容。3)然后,如果用户尚未设置该设置,则对新用户操作进行编码(如下所述)(以避免覆盖个人选择),您可以按照自己的方式进行设置-使用从手动设置中找到的值。
要了解所需的用户元元键,请参阅以下屏幕快照:http ://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/
(我最终写了一个通用插件,以便我可以作为管理员为所有用户定义各种页面/屏幕的首选布局。然后他们可以更改它,例如,随着他们变得更加熟练。当wp更改时它也不会中断插件”仅获取模板用户值,甚至不尝试将值设置为硬编码值。)
如果您想精确订购元盒,则可以使用以下插件:https : //wordpress.org/plugins/post-meta-box-order/
它在用户选项(表wp_usermeta)的meta-box-order_post上播放。
注意1:可以通过更改标志的末尾将此技术应用于任何自定义CPT:meta-box-order_ [YOUR_CPT]
注意2:不要忘记更改插件代码中的哈希值,以将您的新订单应用于所有现有用户。