Как получить 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
?

Michael Ecklund
6.8K
Все ответы на вопрос
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 пользователя.') );

fuxia
107K
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 пользователя не определен.' );
}

Jake
1.82K
4 авг. 2013 г. 19:23:47
Похожие вопросы