Wordpress wp_get_current_user()没有显示结果

时间:2016-04-08 10:33:24

标签: php wordpress

我只是测试一些PHP来尝试找出用户的角色,因为我想尝试执行以下操作:

foreach($current_user->roles as $key => $value){
    if($value == ''){
        $npl= true;
    }
}

如果没有选择用户角色,基本上将$npl更新为true。

下面的代码只会返回Array,而它应该向我展示更多的内容。

<?php

include 'wp-blog-header.php';

$current_user = wp_get_current_user();
$user_id = $current_user->ID;
$user = new WP_User( $user_id );

echo "id:" . $current_user;

        foreach($current_user->roles as $key => $value){
            if($value == ''){
                echo "yes";
            }
            else {
                echo "no";
            }
        }

print_r(array_values($user->roles));

?>

array

我已经在几个阶段试图让它发挥作用,但早期显示id并不显示任何内容

修改

我甚至尝试过:

<?php

include '../wp-blog-header.php';
include '../includes/wp-load.php';
include_once('../wp-config.php');

$current_user = wp_get_current_user();
$user_id = $current_user->ID;

echo 'Username: ' . $current_user->user_login . '<br />';
echo 'User email: ' . $current_user->user_email . '<br />';
echo 'User first name: ' . $current_user->user_firstname . '<br />';
echo 'User last name: ' . $current_user->user_lastname . '<br />';
echo 'User display name: ' . $current_user->display_name . '<br />';
echo 'User ID: ' . $current_user->ID . '<br />';

foreach($current_user->roles as $key => $value){
    if($value == ''){
        echo "yes" . '<br />';
    }
    else {
        echo "no" . '<br />';
    }
}

print_r(array_values($current_user->roles));

echo '<br />' . "The time is " . date("h:i:sa");

?>

3 个答案:

答案 0 :(得分:1)

include wp-load.php并且加载文件位于root用户。所以请包含加载文件

要求/包含wp-load.php

的最简单方法

如果要在WordPress安装之外的PHP文件中使用WordPress功能,则需要包含wp-load.php。也许你可以称之为“挂钩到WordPress”。

也许您已经在使用某种相对路径方法,例如:

但如果目录发生变化,这可能会产生问题。你需要一个干净,动态的方法来获取wp-load.php。所以这是最简单的方法,只需两行代码(将它放在文件的最顶层):

<?php include '../../../wp-load.php'; ?>

简短而甜蜜:)

免责声明:此仅供实验和开发之用。建议不要在实时生产环境中冗余加载WordPress。但是,为什么?

答案 1 :(得分:1)

您的代码中存在错误,请尝试以下操作:

<?php

include 'wp-blog-header.php';

$current_user = wp_get_current_user();
$user_id = $current_user->ID;
$user = new WP_User( $user_id );

echo "id:" . $user_id;

    foreach($current_user->roles as $key => $value){
        if($value == ''){
            echo "yes";
        }
        else {
            echo "no";
        }
    }

    print_r(array_values($current_user->roles));

  ?>

您直接调用$current_user,它将数组作为输出。

答案 2 :(得分:0)

我收到了你的问题,但没有人给你正确的答案,我有你要找的东西。我最近在 WP API 上使用它,根据当前用户是否具有适当的权限,为某些用户提供合理的访问权限。这是我的代码。

function check_user_role(){

global $ne;

//check current user capabilities to determin the role type he pocess
if (!current_user_can('activate_plugins')) {
    $ne =  "Subscriber";
} else {
    $ne =  "admintrator";
}

$infos = array(
    'role' => $ne
);

return $ne;
}

echo check_user_role();

希望能帮到你。 ☻☻☻☻