如何在菜单编辑器中默认启用“metaboxes”?

时间:2017-12-13 作者:Christian

我知道Customizer存在。有些客户端不使用或不想使用它,而是使用传统的菜单编辑器。然而,传统的菜单编辑器有“一些”怪癖。

这就是菜单编辑器对我的看法,我是网站上的第一个管理员用户:

first admin

对于所有可以编辑菜单的用户来说,这就是我希望它看起来的样子。但是,我没有提供网站上的内容,因此我们创建了另一个管理员用户,但编辑器在他看来是这样的:

second

我花了大约10分钟才找到原因,我从3.6开始就一直在与WP合作。这是一个主要的用户体验问题,我需要解决它。问题很简单,那些“手风琴”实际上是WordPress眼中的元盒,默认情况下是禁用的。

screen opts

我如何以编程方式勾选这些选项,这样就不会再发生这种情况?我不想全部启用,因此需要精细控制。

我可以写几行JavaScript,但这太粗糙了。

我试着查找(写这篇文章花了时间),但没有找到任何有用的东西。这对我没有帮助:How to set default screen options?

1 个回复
最合适的回答,由SO网友:Shibi 整理而成

初始nav菜单元框为

$initial_meta_boxes = array( \'add-post-type-page\', \'add-post-type-post\', \'add-custom-links\', \'add-category\' );

他们在用户第一次进入菜单部分后注册。因此,您可以在创建新用户后首先注册它们。

功能wp_initial_nav_menu_meta_boxes() 正在设置user_option metaboxhidden_nav-menus 使用隐藏的元盒数组。

如果user_option 已经存在,它什么都不做。所以创建这个user_option

function change_menu_hidden_metaboxes($user_id) {
    $hidden_metaboxes = array(); // empty array
    update_user_option( $user_id, \'metaboxhidden_nav-menus\', $hidden_metaboxes ); // update the user metaboxes
}
add_action( \'user_register\', \'change_menu_hidden_metaboxes\', 10, 1 );
此函数将为隐藏的元数据库设置空数组。因此,所有的帖子类型和分类都会显示出来。可以将要隐藏的帖子类型或分类添加到数组中。

结束

相关推荐

仪表板:10个最后草稿页面和10个最后待审页面(Metabox)

我想在仪表板上显示一些用户角色(管理员、编辑器和auther)。包含10个最后草稿页和10个最后编辑页的框。对于最后编辑的10页,我使用以下自定义:add_action( \'wp_dashboard_setup\', \'admin_dashboard_last_edits_register\' ); function admin_dashboard_last_edits_register() { wp_add_dashboard_widget( __FUNCT