get_current_user_id() returning Zero 0

浪尽此生 提交于 2020-08-10 05:03:12

问题


get_current_user_id() is returning 0 for following codes. I do tried some solution available on stack overflow but somehow not working for me. I'm expecting explanation why its returning zero and how to fix?

P.S: I'm calling get_current_user_id() from external php page and included '../wp-blog-header.php' for that.

Code:

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

$user_ID = get_current_user_id(); 
echo $user_ID;

?> 

回答1:


You have to call wordpress proccess of user authentication. Try adding the following code before get_current_user_id();, if it doesn't solve your problem it'll at least point you the right direction:

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

Hope it helps!




回答2:


This is likely a result of including wp-blog-header.php directly in your external file. From the Codex on get_current_user_id():

The user's ID, if there is a current user; otherwise 0.

I'm not sure what you're trying to do, but the correct method would be to add this logic to functions.php under the correct action hook, or by writing a custom plugin. By doing one of those two things, you will have access to the authenticated user.




回答3:


if you are using ajax then may be in some browser versions we can't get id by get_current_user_id() for this we can use xhrFields in over ajax then it will work fine. if the problem with the browser version.

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


来源:https://stackoverflow.com/questions/36113060/get-current-user-id-returning-zero-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!