首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查管理员是否已登录WordPress

检查管理员是否已登录WordPress
EN

Stack Overflow用户
提问于 2014-05-16 13:14:31
回答 3查看 46关注 0票数 1

我们有一个复杂的奇怪的系统,我们需要检查wordpress管理员是否已经登录,我所说的登录不仅仅是指会话,而是指发送查询以验证输入的凭据时的初始秒数。我在考虑做传统的php,我做的事情如下所示:

代码语言:javascript
复制
if(isset($_POST['submit']) { // do something }

但这将是不正确的方式。我到底应该在哪里看到这个peice,我相信它是wp-login.php,但是找不到我要找的东西。

谢谢

EN

回答 3

Stack Overflow用户

发布于 2014-05-16 13:26:12

试一试

代码语言:javascript
复制
global $current_user;
$user = get_userdata($current_user->ID);

$userRole = (!empty($user->roles) ? $user->roles : '');
if(in_array('administrator', $userRole)) {
     // do your stuff
}

或者你可以试试:- http://codex.wordpress.org/Function_Reference/current_user_can

票数 0
EN

Stack Overflow用户

发布于 2014-05-16 20:52:20

我们可以在过滤器钩子中添加一些自定义操作。如果表单未提交,则$user参数为WP_Error对象。

代码语言:javascript
复制
add_filter( 'login_redirect', function( $redirect_to, $requested_redirect_to, $user )
{
    if( !is_wp_error( $user ) && in_array( 'administrator', $user->roles ) )
    {
        # Do your thing; here just inspecting the WP_User Object
        wp_die( 
            sprintf( '<pre>%s</pre>', print_r( $user, true ) ),
            'Var dump',
            array( 
                'response' => 500, 
                'back_link' => true 
            )
        );
    }

    return $redirect_to;
}, 10, 3 );
票数 0
EN

Stack Overflow用户

发布于 2014-05-16 21:08:39

你可以使用非常巧妙的Wordpress函数来确定用户的能力,它被称为current_user_can()

<?php if ( current_user_can('update_core') ) { echo 'The current user is Administrator or Super administrator (in Multisite)'; }

只有单站点安装的Administrators具有以下功能列表。在多站点中,只有超级管理员具有以下功能:

代码语言:javascript
复制
update_core 
update_plugins 
update_themes 
install_plugins 
install_themes 
delete_themes 
edit_plugins 
edit_themes 
edit_users 
create_users 
delete_users 
unfiltered_html

有关更多information,请参阅此处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23693060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档