2016-03-20 3 views
1

get_current_user_id() возвращает 0 для следующих кодов. Я пробовал некоторое решение, доступное для переполнения стека, но как-то не работал на меня. Я ожидаю объяснения, почему его возвращение нуля и как исправить?get_current_user_id() return Zero 0

P.S: Я вызываю get_current_user_id() с внешней php-страницы и для этого включен '../wp-blog-header.php'.

Код:

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

$user_ID = get_current_user_id(); 
echo $user_ID; 

?> 

ответ

2

Необходимо выполнить вызов wordpress для аутентификации пользователя. Попробуйте добавить следующий код перед get_current_user_id();, если она не решит вашу проблемы это будет по крайней мере, точка вам правильное направление:

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

Надеется, что это помогает!

+0

Отлично, это помогло мне. –

1

Это, вероятно, является результатом включения wp-blog-header.php непосредственно во внешнем файле. От the Codex on get_current_user_id():

Идентификатор пользователя, если есть текущий пользователь; в противном случае 0.

Я не уверен, что вы пытаетесь сделать, но правильный метод должен был бы добавить эту логику functions.php под правильным action hook или по writing a custom plugin. Делая одну из этих двух вещей, вы получите доступ к аутентифицированному пользователю.