WordPress как на ладони
Шаблоны, плагины и темы для настоящих поклонников Elementor. От TemplateMonster.com wordpress jino

get_the_author_meta() WP 2.8

Возвращает указанные метаданные указанного или текущего пользователя.

Если функция используется внутри цикла, то не обязательно указывать ID пользователя. В этом случае, функция вернет данные автора поста. ID пользователя нужно указывать, если функция используется за пределами цикла.

Возвращает данные для использования их в PHP. Чтобы вывести данные на экран используйте аналогичную функцию the_author_meta().

Плагины могут дополнять данные пользователя новыми полями (такие данные добавляются в таблицу wp_usermeta для которых указывается ключ и значение). Чтобы получить такое значение поля, нужно указать его ключ в параметр $field.

Является основой для: get_the_archive_description(), the_author_meta()
Работает на основе: get_userdata()
✈ 1 раз = 0.00002с = очень быстро | 50000 раз = 0.19с = очень быстро
Хуки из функции:
Возвращает

Строку, число, массив. Указанные данные пользователя, если они существуют. Если указанное поле не найдено, то будет возвращена пустая строка.

Использование

get_the_author_meta( $field, $user_id );
$field(строка)

Название поля, данные которого нужно вернуть. Может быть:

user_login или login
user_pass или pass
user_nicename или nicename
user_email или email
user_url или url
user_registered или registered
user_activation_key или activation_key
user_status или status
roles
display_name
nickname
first_name
last_name
description (Biographical Info from the user's profile)
jabber
aim
yim
user_level
user_firstname
user_lastname
rich_editing
comment_shortcuts
admin_color
plugins_per_page
plugins_last_view
ID

По умолчанию: ''

$user_id(число)
ID пользователя. Если указать этот параметр, то функцию будет возвращать данные указанного пользователя (автора). По умолчанию, выводятся данные текущего пользователя (если функция используется внутри цикла WordPress).
По умолчанию: текущий пользователь

Примеры

#1 Получим e-mail адрес пользователя

Получим e-mail автора текущего поста и поместим его в переменную $user_email для дальнейшего использования. (помните, эта функция возвращает данные, а не выводит их на экран).

$user_email = get_the_author_meta('user_email');
echo $user_email;

Заметка: если вы выводите данные на отдельной странице, перед вызовом функции get_the_author_meta() должна быть использована функция the_post(). Или вам нужно отдельно указать ID автора поста во втором параметре ($post->post_author).

#2 Выведем имя пользователя и ссылку на Email

Получим email адрес пользователя с ID 25 и выведем его "отображаемое имя":

<p>Напишите автору на Email: 
	<a href="mailto:<?php echo get_the_author_meta('user_email', 25); ?>">
		<?php the_author_meta('display_name', 25); ?>
	</a>
</p>

Код get_the_author_meta: wp-includes/author-template.php VER 4.9.8

<?php
function get_the_author_meta( $field = '', $user_id = false ) {
	$original_user_id = $user_id;

	if ( ! $user_id ) {
		global $authordata;
		$user_id = isset( $authordata->ID ) ? $authordata->ID : 0;
	} else {
		$authordata = get_userdata( $user_id );
	}

	if ( in_array( $field, array( 'login', 'pass', 'nicename', 'email', 'url', 'registered', 'activation_key', 'status' ) ) )
		$field = 'user_' . $field;

	$value = isset( $authordata->$field ) ? $authordata->$field : '';

	/**
	 * Filters the value of the requested user metadata.
	 *
	 * The filter name is dynamic and depends on the $field parameter of the function.
	 *
	 * @since 2.8.0
	 * @since 4.3.0 The `$original_user_id` parameter was added.
	 *
	 * @param string   $value            The value of the metadata.
	 * @param int      $user_id          The user ID for the value.
	 * @param int|bool $original_user_id The original user ID, as passed to the function.
	 */
	return apply_filters( "get_the_author_{$field}", $value, $user_id, $original_user_id );
}

Cвязанные функции

Из метки: metadata (метаданные)

3 коммента
  • @ moonkir

    что то не выводится по двум примерам ничего
    Из второго показывает только Напишите автору на Email:
    Добавлял код в шаблон страницы после

    <?php the_content(); ?>
    Ответить4.1 года назад #
    • Kama6811

      Дополнил описание: если вы выводите данные на отдельной странице, перед вызовом функции get_the_author_meta() должна быть использована функция the_post(). Или вам нужно отдельно указать ID автора поста во втором параметре ($post->post_author).

      Ответить4.1 года назад #
Здравствуйте, !     Войти . Зарегистрироваться