此选项存储在wp_usermeta
带有meta_key
名称:metaboxhidden_nav-menus
.
如果我们把所有的盒子都藏起来,这就是meta_value
选项:
array(
"nav-menu-theme-locations",
"add-custom-links",
"add-post",
"add-page",
"add-portfolio",
"add-category",
"add-post_tag",
"add-post_format",
"add-location"
)
有一个CPT,
portfolio
. 如果我们希望它在用户每次访问页面时始终可见(
/wp-admin/nav-menus.php
), 此代码将执行以下操作:
add_filter( \'get_user_option_metaboxhidden_nav-menus\', \'cpt_always_visible_wpse_87882\', 10, 3 );
function cpt_always_visible_wpse_87882( $result, $option, $user )
{
if( in_array( \'add-portfolio\', $result ) )
$result = array_diff( $result, array( \'add-portfolio\' ) );
//$show_boxes = array( \'cpt1\', \'cpt2\', \'cpt3\' );
//if( in_array( $show_boxes, $result ) )
// $result = array_diff( $result, $show_boxes );
return $result;
}
但这会强制CPT可见,即使用户取消选中屏幕选项。在下次访问该页面时,该框将再次可见。
要在用户注册后执行一次,操作挂钩user_register
应与函数一起使用update_user_meta
.
要在新安装上执行此操作,请自定义install.php
可以使用。也许有另一种技术可用,但不确定。。。