get_current_user_id()返回零0

时间:2016-03-20 11:20:20

标签: wordpress wordpress-plugin custom-wordpress-pages

对于以下代码,

get_current_user_id()返回0。我确实尝试了一些堆栈溢出的解决方案但不知何故不适合我。我期待解释为什么它返回零以及如何修复?

P.S:我正在从外部php页面调用get_current_user_id()并为此包含'../wp-blog-header.php'

代码:

<?php
require('../wp-blog-header.php');
get_header();

$user_ID = get_current_user_id(); 
echo $user_ID;

?> 

3 个答案:

答案 0 :(得分:3)

你必须调用wordpress proccess的用户身份验证。尝试在get_current_user_id();之前添加以下代码,如果它没有解决您的问题,它至少会指出正确的方向:

$user_id = apply_filters( 'determine_current_user', false );
wp_set_current_user( $user_id );

希望它有所帮助!

答案 1 :(得分:1)

这可能是因为wp-blog-header.php直接包含在您的外部文件中。来自the Codex on get_current_user_id()

  

用户的ID,如果有当前用户;否则为0。

我不确定您要做什么,但正确的方法是将此逻辑添加到正确的action hook下的 functions.php 或{{ 3}}。通过执行这两项操作之一,您将可以访问经过身份验证的用户。

答案 2 :(得分:0)

如果您使用的是ajax,则可能是在某些浏览器版本中,我们无法通过get_current_user_id()来获取ID,为此,我们可以在ajax中使用xhrFields,那么它将正常工作。如果浏览器版本有问题。

        jQuery.ajax({
            type: "POST",
            xhrFields: {
                withCredentials: true
            },
            cache: false,