如何为一个用户创建仪表板小部件

时间:2013-01-10 作者:Sayid

我将首先警告您,我的编程技能有限。

我需要为user\\u id=21的用户创建一个仪表板小部件,该小部件将显示在WP仪表板中。

到目前为止,我已经尝试了以下代码,但不起作用:

function my_catdb() {
echo \'<a href="http://xxxxxxxxxxx.org/?frm_display=single-catproblem">View the Problem Problem Database.</a>\';
}
/**
 * add Dashboard Widget via function wp_add_dashboard_widget()
 */
function my_catdb_setup() {
    wp_add_dashboard_widget( \'my_catdb\', __( \'Cataloging Problem Database\' ), \'my_catdb\'         );
}
/**
 * use hook, to integrate new widget
 */
$user_id = get_current_user_id();
if ( is_user_logged_in() ) {  
if ( $user_id = 21 ) {
add_action(\'wp_dashboard_setup\', \'my_wp_dashboard_setup\');
} 
}
非常感谢您的帮助。谢谢

1 个回复
SO网友:fuxia

你必须等待wp_loaded 使用get_current_user_id().

示例:

add_action( \'wp_loaded\', \'wpse_80061_load_dashboard_widget\' );

function wpse_80061_load_dashboard_widget()
{
    if ( 1 === get_current_user_id() )
        add_action( \'wp_dashboard_setup\', \'wpse_80061_add_dashboard_widget\' );
        // your function:
        // add_action( \'wp_dashboard_setup\', \'my_catdb_setup\' );
}

function wpse_80061_add_dashboard_widget()
{
    wp_add_dashboard_widget(
        \'wpse_80061_widget\',
        \'Hey!\',
        \'wpse_80061_render_dashboard_widget\'
    );
}

function wpse_80061_render_dashboard_widget()
{
    echo \'hey!\';
}
有关仪表板小部件的更多详细信息,请参阅我的插件T5 Table size dashboard widget.

结束

相关推荐

如何获取当前登录用户的ID?

我想获取当前登录用户的ID。我找到了函数:get_current_user_id 这似乎是可行的,但我不确定在这种情况下“当前”是什么意思。这意味着如果用户查看另一个用户的配置文件,那么当前用户是否会更改为另一个用户?简而言之,我正在寻找一种可靠的方法,始终只获取登录用户的id。