WordPress как на ладони

get_comment_author()WP 1.5.0

Получает имя автора комментария. Если поле "имя автора" (comment_author) пустое, то функция вернет: "Анонимный" (__('Anonymous')). Функция предназначена для использования в цикле комментариев.

Работает на основе: get_comment()
Хуки из функции

Возвращает

Строку. Имя автора комментария.

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

$author = get_comment_author( $comment_ID );
$comment_ID(число/объект)
ID или объект комментария, имя автора которого нужно получить.

Примеры

0

#1 Получим имя автора текущего комментария в цикле

echo  get_comment_author( $comment_ID ); // Вернет: Евгений
0

#2 Получаем имя автора комментария из поля "Отображать как"

На хуке get_comment_author мы можем изменить вывод функции и вернуть поле display_name пользователя вместо поля comment_author, если комментарий оставил реальный пользователь сайта.

add_filter( 'get_comment_author', 'metheme_get_comment_author', 10, 3 );

function metheme_get_comment_author( $author, $comment_ID, $comment ) {

	if ( 
		$comment->user_id 
		&& ( $user = get_userdata( $comment->user_id ) ) 
		&& $user->display_name
	) {

		return $user->display_name;
	}

	return $author;
}

Список изменений

С версии 1.5.0 Введена.
С версии 4.4.0 Added the ability for $comment_id to also accept a WP_Comment object.

Код get_comment_author() WP 6.5.2

function get_comment_author( $comment_id = 0 ) {
	$comment = get_comment( $comment_id );

	$comment_id = ! empty( $comment->comment_ID ) ? $comment->comment_ID : $comment_id;

	if ( empty( $comment->comment_author ) ) {
		$user = ! empty( $comment->user_id ) ? get_userdata( $comment->user_id ) : false;
		if ( $user ) {
			$comment_author = $user->display_name;
		} else {
			$comment_author = __( 'Anonymous' );
		}
	} else {
		$comment_author = $comment->comment_author;
	}

	/**
	 * Filters the returned comment author name.
	 *
	 * @since 1.5.0
	 * @since 4.1.0 The `$comment_id` and `$comment` parameters were added.
	 *
	 * @param string     $comment_author The comment author's username.
	 * @param string     $comment_id     The comment ID as a numeric string.
	 * @param WP_Comment $comment        The comment object.
	 */
	return apply_filters( 'get_comment_author', $comment_author, $comment_id, $comment );
}
2 комментария
    Войти