Как получить ID пользователя текущего редактируемого профиля в WP-Admin?

17 окт. 2012 г., 01:08:06
Просмотры: 14.5K
Голосов: 7

Есть ли способ получить ID пользователя профиля, который редактируется в wp-admin?

Я знаю, что он есть в URL, если вы редактируете другого пользователя, например: ./wp-admin/user-edit.php?user_id=427. Можно использовать $_GET['user_id'] для получения ID пользователя, но что делать, когда вы редактируете свой собственный профиль в wp-admin? ID пользователя не будет в URL. Например: ./wp-admin/profile.php

Есть ли простой или универсальный способ получить ID пользователя текущего редактируемого профиля в wp-admin?

0
Все ответы на вопрос 2
0

На этой странице всегда доступна глобальная переменная $user_id.

Из файла user-edit.php:

$user_id = (int) $user_id;
$current_user = wp_get_current_user();
if ( ! defined( 'IS_PROFILE_PAGE' ) )
    define( 'IS_PROFILE_PAGE', ( $user_id == $current_user->ID ) );

if ( ! $user_id && IS_PROFILE_PAGE )
    $user_id = $current_user->ID;
elseif ( ! $user_id && ! IS_PROFILE_PAGE )
    wp_die(__( 'Неверный ID пользователя.' ) );
elseif ( ! get_userdata( $user_id ) )
    wp_die( __('Неверный ID пользователя.') );
17 окт. 2012 г. 01:11:39
0

Немного упрощено. У меня не было доступа к переменной $user_id.

// Если это профиль текущего пользователя (profile.php)
if ( defined('IS_PROFILE_PAGE') && IS_PROFILE_PAGE ) {
    $user_id = get_current_user_id();
// Если это страница профиля другого пользователя
} elseif (! empty($_GET['user_id']) && is_numeric($_GET['user_id']) ) {
    $user_id = $_GET['user_id'];
// Иначе что-то пошло не так
} else {
    die( 'ID пользователя не определен.' );
}
4 авг. 2013 г. 19:23:47