我们有一个复杂的奇怪的系统,我们需要检查wordpress管理员是否已经登录,我所说的登录不仅仅是指会话,而是指发送查询以验证输入的凭据时的初始秒数。我在考虑做传统的php,我做的事情如下所示:
if(isset($_POST['submit']) { // do something }但这将是不正确的方式。我到底应该在哪里看到这个peice,我相信它是wp-login.php,但是找不到我要找的东西。
谢谢
发布于 2014-05-16 13:26:12
试一试
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
发布于 2014-05-16 20:52:20
我们可以在过滤器钩子中添加一些自定义操作。如果表单未提交,则$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 );发布于 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具有以下功能列表。在多站点中,只有超级管理员具有以下功能:
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,请参阅此处。
https://stackoverflow.com/questions/23693060
复制相似问题