我们有一个复杂的奇怪系统,我们需要检查wordpress管理员是否已登录并登录我不仅仅意味着会话,而是在发送查询以验证输入的凭据时的第一个。我正在考虑做传统的PHP,我做的事情如下:
if(isset($_POST['submit']) { // do something }
但那是不正确的方式。我到底想看看这个peice,我相信它的wp-login.php但是却找不到我想要的东西。
感谢
答案 0 :(得分:0)
试
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
答案 1 :(得分:0)
我们可以在过滤器挂钩login_redirect
中添加一些自定义操作。如果表单未提交,则$user
参数是WP_Error对象。
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 );
答案 2 :(得分:0)
您可以使用非常简洁的Wordpress功能来确定用户功能,它被称为current_user_can()
:
<?php
if ( current_user_can('update_core') ) {
echo 'The current user is Administrator or Super administrator (in Multisite)';
}
只有管理员的单站点安装具有以下功能列表。在多站点中,只有超级管理员具有以下功能:
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。