是否将我的用户帐户的wp-admin仪表板布局复制给其他用户?

时间:2014-05-16 作者:paradroid

在我的用户帐户的wp admin中的Dashboard选项卡上,我在屏幕选项中隐藏了某些项目,并且以特定的方式排列了面板。

我想将相同的布局复制给我的其他管理用户,这样他们就可以看到某些信息,这样我就可以在需要时更轻松地远程解释事情。

我假设此信息包含在数据库表中。

我需要复制什么到哪里?

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

原始代码(许可证:MIT)

以下代码已更改from my "Meta Box Order debug" plugin (GitHub上提供Gist)。可以在代码注释中找到解释。

好处这个解决方案的好处是,它不会改变DB值,而是动态地改变数据。这样,您可以随时恢复更改和/或使用其他用户作为“数据源”。

另一个好处是,您可以添加一个简单用作蓝图的虚拟用户。每次您想要更改每个人的布局时,只需使用此用户登录并更改仪表板上的元框即可。这样,您就可以更改配置,而无需编写一行代码。

@TODO

您必须更改用户ID-这标记为@TODO - 到实际要从中克隆/用作“源”的用户ID。

<?php

namespace WPSE;

/**
 * Plugin Name: (#144583) Clone Meta Box Order
 */

add_filter( \'get_user_metadata\', \'WPSE\\disableMetaBoxOrder\', 10, 4 );
function disableMetaBoxOrder( $abort, $userID, $key, $single )
{
    // Too early: abort
    if (
        ! function_exists( \'get_current_screen\' )
        OR NULL === get_current_screen()
        OR ! property_exists( get_current_screen(), \'base\' )
    )
        return $abort;

    // Don\'t trigger on the wrong screens
    if ( \'dashboard\' !== get_current_screen()->base  )
    {
        remove_filter( current_filter(), __FUNCTION__ );
        return $abort;
    }

    $target  = \'meta-box-order_dashboard\';

    // This is the part that actually alters/clones the user data
    // Trigger on default as on site specific settings
    if (
        $key === $target
        OR $key === $GLOBALS[\'wpdb\']->prefix.$target
        )
    {
        // Prevent endless loop
        remove_filter( current_filter(), __FUNCTION__ );

        return get_user_meta(
            # @TODO Replace the next line with the user ID 
            # that you want to clone from (the origin)
            get_current_user_id(),
            $target,
            TRUE
        );
    }

    return $abort;
}

SO网友:Brandt Solovij

查看中的数据库{$prefix}usermeta 桌子有一个名为的字段:

meta-box-order_dashboard
不过,你需要四处看看,多找些田地。还有许多其他表存储仪表板窗格和状态,我猜这取决于您的用户群、插件等。。您需要的值将取决于此。

大多数usermeta 专用于这些和其他管理设置。

结束

相关推荐

已在wp-admin上升级到3.8.1,但无法在GoPardy cPanel中升级

Godaddy无法帮助我解决这个问题,因为这是一个与wp相关的问题。基本上,我一直在通过WP amdin面板升级WP。同时,godaddy上的WP应用保持在3.7。现在由于某种原因,我无法在godaddy升级它。我可以将其还原为3.6.1,然后它会发出一条消息,要求升级到3.8.1,当我尝试这样做时,它不会一直升级,只会升级到3.7,然后它会暂停。你有没有想过这里会发生什么事</这是否意味着WP实际上没有升级,即使在WP管理端它已经升级了</我尝试过删除所有插件并执行相同的过程,但仍然没有成功