在“Screen Options”(屏幕选项)窗格中默认为所有用户选中项目

时间:2011-06-20 作者:cmcculloh

当您在仪表板中时,“屏幕选项”窗格中选中和取消选中的选项在我看来是完全随机和任意的,当您需要的东西没有显示时,会造成很多混乱,而“应该”在那里,但没有。是否有某种方法影响选中这些选项中的哪一个,并使其适用于所有用户?

3 个回复
SO网友:mike23

此处可能已经回答:How to set default screen options?

SO网友:brasofilo

mike23的链接提示以下函数:

// add_action(\'user_register\', \'wpse20505_set_user_metaboxes\');
add_action(\'admin_init\', \'wpse20505_set_user_metaboxes\');
function wpse20505_set_user_metaboxes($user_id=NULL) {
    $meta_key[\'hidden\'] = \'metaboxhidden_dashboard\';
    $meta_value = array(
        \'dashboard_incoming_links\',
        \'dashboard_plugins\',
        \'dashboard_primary\',
        \'dashboard_quick_press\',
        \'dashboard_recent_comments\',
        \'dashboard_recent_drafts\',
        \'dashboard_right_now\',
        \'dashboard_secondary\'
    );
    $blogusers = get_users(\'blog_id=1\');
    foreach ($blogusers as $user) {
        // this conditional will check if the user already set his preferences and may be removed if wanted
        if ( ! get_user_meta( $user->ID, $meta_key[\'hidden\'], true) ) {
            update_user_meta( $user->ID, $meta_key[\'hidden\'], $meta_value );
        }
    }
}
Theadmin_init 只需运行一次,然后user_register 可以启用以配置新用户的仪表板。

这个meta_value 数组包含所有小部件,可以根据您的需要进行自定义。

SO网友:Vijaya Narayanasamy

1) 复制此代码并将其粘贴到编辑器中,然后将其另存为enable_custom_field.php. 然后,创建一个名为“”的文件夹Enable Custom Field By Default“然后将该PHP文件放在这个文件夹中。就像这样,您使用自己的插件创建。只需将该文件夹放在插件文件夹中,并在您的管理页面中激活它即可。

<?php 
/* 
Plugin Name: Enable Custom Fields per Default
Version:     1.0
Required:    3.1
Author:      Thomas Scholz
Author URI:  http://toscho.de
License:     GPL
*/
! defined( \'ABSPATH\' ) and exit;
add_filter( \'default_hidden_meta_boxes\', \'enable_custom_fields_per_default\', 20, 1 );

/**
 * Removes custom fields from the default hidden elements.
 *
 * The original ( wp-admin/includes/template.php#get_hidden_meta_boxes() ):
 * array(
 *      \'slugdiv\',
 *      \'trackbacksdiv\',
 *      \'postcustom\',      <-- we need this
 *      \'postexcerpt\',
 *      \'commentstatusdiv\',
 *      \'commentsdiv\',
 *      \'authordiv\',
 *      \'revisionsdiv\'
 * )
 *
 * It has no effect if the user has decided to hide the box.
 * This option is saved in "metaboxhidden_{$screen->id}"
 *
 * @param  array $hidden
 * @return array $hidden
 */
function enable_custom_fields_per_default( $hidden )
{
    foreach ( $hidden as $i => $metabox )
    {
        if ( \'postcustom\' == $metabox )
        {
            unset ( $hidden[$i] );
        }
    }
    return $hidden;
}
?>
2)我通过在我的管理页面中创建新用户并使用该用户登录,尝试了这一方法。自定义字段位于我的页面的编辑部分。它很有魅力。

结束

相关推荐