在仪表板上为每个用户显示欢迎面板

时间:2012-12-30 作者:ptimson

我已经为中包含信息的用户定制了仪表板上的欢迎面板。然后我隐藏了“Disclose”按钮并添加了CSS,以使欢迎面板始终可见。使用“welcome\\u panel”挂钩。

这对于管理员来说效果很好,但对于其他用户(如编辑和作者),则不会显示欢迎面板。这并不是说管理面板被隐藏了,它没有包含在源代码中。

我需要找到一种方法,为每个用户而不仅仅是管理员包含欢迎面板代码。

刚在中找到以下内容wp-admin/index.php. 因此,它将只显示用户是否可以编辑\\u theme\\u选项。

<?php if ( has_action( \'welcome_panel\' ) && current_user_can( \'edit_theme_options\' ) ) :
是否有方法编辑此操作或调用do\\u操作(“welcome\\u panel”);即使用户无法编辑\\u theme\\u选项?

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

我就是这样解决的:

在函数中。php

// Custom Dashboard
function my_custom_dashboard() {
    $screen = get_current_screen();
    if( $screen->base == \'dashboard\' ) {
        include \'admin/dashboard-panel.php\';
    }
}
add_action(\'admin_notices\', \'my_custom_dashboard\');
仪表板面板。php

<!-- Hide Old Wrap with CSS -->
<style type="text/css">
div#wpcontent div.wrap {
    display: none;
}
div#wpcontent div.my-dashboard {
    display: block;
}
</style>

<!-- New Wrap with custom welcome screen-->
<div class="wrap mjp-dashboard">
    <h2>Dashboard</h2>

    <div id="welcome-panel" class="welcome-panel">
        <?php wp_nonce_field( \'welcome-panel-nonce\', \'welcomepanelnonce\', false ); ?>
        <?php //do_action( \'welcome_panel\' ); ?>
        <div class="mjp-welcome-content">
            <h3>Welcome, <?php echo $name; ?></h3>
            <p class="about-description">Your role is...</p>
            <div class="welcome-panel-column-container">
                <div class="welcome-panel-column">

                </div>
            </div>
        </div>
    </div>

    <div id="dashboard-widgets-wrap">

    <?php wp_dashboard(); ?>

    <div class="clear"></div>
    </div><!-- dashboard-widgets-wrap -->

</div><!-- wrap -->

SO网友:s_ha_dum

正如您已经发现的,该面板的显示条件为hard-coded into a core file. 它并不意味着要更改,这意味着您可能正试图将面板用于它不打算用于的对象。这不是批评。这只会让事情变得更难。除了编辑核心文件之外,我看不到改变这种情况的方法,我不建议这样做。

您可以尝试运行welcome_panel 在其他钩子上的动作,like one of these, 例如,但我不希望它正常工作。如果你真的,真的需要welcome_panel 为每个人竞选这是你最好的选择,但我不抱希望。

你也可以给每个人edit_theme_options 能力,但这是个坏主意。想到这一点,我很惭愧

据我所知,您的选择非常有限,实际上可以归结为“核心编辑”。这是一条高维护路径。我建议你把你的用户信息放在其他地方,比如新的Dashboard Widget, 在a中Help screen, 或在admin bar.

结束

相关推荐

在PHP5.4上全新安装WordPress中的wp-admin空白

Wordpress 3.4.2的干净安装在登录管理面板时会出现一个空白屏幕。这是由于以下资源未加载到Chrome中:GET /wp-admin/ /wp-admin/:32 GET /wp-admin/load-styles.php?c=0&dir=ltr&load=wp-jquery-ui-dialog&ver=3.4.2 /wp-admin/:32 GET /wp-admin/load-scripts.php?c=0&load=jquery,util