我在wordpress目录外有一个脚本,我需要检查用户当前是否以admin身份登录。
网站结构为:
/home/myscript.php/home/wordpress/check_if_admin.php
check_if_admin.php
内容为:
require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');
global $current_user;
get_currentuserinfo();
$user_id = $current_user->ID;
//usually admin user id is 1 if its not working check admin user id from wp_users table
if($user_id == 1) {
$admin = "1";
}
$is_admin = current_user_can( 'manage_options' );
if ( current_user_can( 'administrator' ) ) {
$admin = "1";
}
if (!empty($_GET['debug'])) {
echo "UID $user_id / ADM $admin";
}
如果我从/home/wordpress/check_if_admin.php
运行脚本,它可以工作。但是,如果我试图将check_if_admin.php
包含在myscript.php
中,它不起作用,$user_id / $admin
总是零。
如何查看myscript.php
的admin状态
尝试添加绝对路径。
require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');
如果您的脚本在wordpress目录之外,您需要在require_once(ABSPATH . 'wp-settings.php');
/** Set cookie path so we can access login from anywhere */
define('ADMIN_COOKIE_PATH', '/');
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');
这是因为默认情况下,你的登录cookie只能被你的wordpress目录访问。