如何更改WP meta box的默认位置?


Answers:


22

您可以使用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在此示例中,将其更改为自定义帖子类型的名称。


这似乎很理想,再次感谢Milo,我会尝试一下。
布朗先生

@Milo:好像add_meta_box()需要一个$callback函数名称,我怎么知道WordPress使用的函数名称?假设我要对侧边栏meta_box“类别”(#categorydiv)做同样的事情吗?
Mayeenul Islam

5
@MayeenulIslam在文件中查找,/wp-admin/edit-form-advanced.php您将看到WordPress将所有核心元框及其使用的回调和参数添加到何处。对于类别来说post_categories_meta_box
米洛(Milo)

5

我也为此感到挣扎。我真的没有找到一种重新定义布局/顺序的干净方法-尤其是因为当用户拖动框时可以更改它。

我喜欢用wordpress做事(通常会得到回报),而不是与之冲突,而wordpress做事的方式如下:

wordpress会存储每个用户在每个屏幕上的拖动位置,并且根据要使用的页面/屏幕,有一堆用户元数据键。

因此,您可以为每个新用户添加一个操作或过滤器,以按照您希望默认设置的方式设置用户。
1)拖动并排列您想要影响的页面,然后2)在您的用户元数据的phpmyadmin中查找您的ID,并查看wp存储在其中的内容。3)然后,如果用户尚未设置该设置,则对新用户操作进行编码(如下所述)(以避免覆盖个人选择),您可以按照自己的方式进行设置-使用从手动设置中找到的值。

要了解所需的用户元元键,请参阅以下屏幕快照:http ://wpusersplugin.com/related-plugins/amr-user-templates/screenshots-for-user-templates/

(我最终写了一个通用插件,以便我可以作为管理员为所有用户定义各种页面/屏幕的首选布局。然后他们可以更改它,例如,随着他们变得更加熟练。当wp更改时它也不会中断插件”仅获取模板用户值,甚至不尝试将值设置为硬编码值。)


1
尽管我喜欢这种方法背后的想法,但Milo的解决方案似乎要快得多,因此Im可以尝试一下,但也感谢您抽出宝贵的时间向我介绍这种方法。我会稍后再考虑使用这种方式。我1upd你的评论。
布朗先生,

3
Anmari提出的插件是付费的商业插件...而且自去年八月以来似乎没有更新。您还在维护该插件吗?如果没有,您是否考虑过在Github上共享它?
unfulvio

感谢@anmari分享这种方法,真的很有帮助。
摩尔巴拉赞尼

0

如果您想精确订购元盒,则可以使用以下插件:https : //wordpress.org/plugins/post-meta-box-order/

它在用户选项(表wp_usermeta)的meta-box-order_post上播放。

注意1:可以通过更改标志的末尾将此技术应用于任何自定义CPT:meta-box-order_ [YOUR_CPT]

注意2:不要忘记更改插件代码中的哈希值,以将您的新订单应用于所有现有用户。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.