在wordpress文件夹之外使用wordpress功能

时间:2015-07-27 05:49:38

标签: php wordpress

我在wordpress目录外有一个脚本,我需要检查用户当前是否以管理员身份登录。

网站结构是:

  

/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中的管理员状态?

2 个答案:

答案 0 :(得分:1)

尝试使用绝对路径添加。

require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');

答案 1 :(得分:1)

如果您的脚本位于wordpress目录之外,则需要在require_once(ABSPATH . 'wp-settings.php');之前将以下行添加到wp-config.php

/** Set cookie path so we can access login from anywhere */
define('ADMIN_COOKIE_PATH', '/');
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');

这是因为默认情况下,只有wordpress目录才能访问您的登录cookie。