get_comment

Получает данные указанного комментария из базы данных. Возвращает экземпляр класса WP_Comment (условно можно сказать что возвращаются все поля таблицы wp_comments).

Можно указать в каком формате возвращать данные (как объект/массив). Указывается во втором параметре $output.

Если не было передано никаких параметров, то будет использована глобальная переменная $comment для определения возвращаемых данных.

✈ 1 раз = 0.001225с = очень медленно | 50000 раз = 1.67с = быстро
Хуки из функции:
get_comment
Возвращает

Объект/Массив. По умолчанию Объект комментария.

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

$comment = get_comment( $comment, $output );
$comment(число/объект)
ID/объект комментария, данные которого нужно получить. Передавать нужно переменную, а не число (см. примеры ниже), если передать число, например 24, то функция вызовет ошибку.
По умолчанию: null
$output(строка)

Формат возвращаемых данных, может быть:

  • OBJECT – данные вернутся в виде объекта;
  • ARRAY_A – данные вернутся в виде ассоциативного массива, с ключами и соответствующими им значениями;
  • ARRAY_N – данные вернутся в виде обычного массива (ключи затираются).

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

Примеры

#1 Получим объект комментария

$id27 = 27;
$comment27 = get_comment( $id27 );
$name = $comment27->comment_author;

#3 Получим данные в виде ассоциативного массива:

$id27 = 27;
$comment27 = get_comment( $id27, ARRAY_A );
$name = $comment27['comment_author'];

#4 Как правильно передавать параметр ID:

//    Верно: параметр ID передан в виде переменной
$the_comment = get_comment( $dummy_id = 7 );

//    Неправильно (вызовет ошибку): параметр ID передан в виде числа
$the_comment = get_comment( 7 );

Заметки

  • использует функцию: get_page_of_comment() – получает комментарий по ID параметру

  • использует класс: $wpdb

Код из


wp-includes/comment.php

WP 4.7.2

<?php
function get_comment( &$comment = null, $output = OBJECT ) {
	if ( empty( $comment ) && isset( $GLOBALS['comment'] ) ) {
		$comment = $GLOBALS['comment'];
	}

	if ( $comment instanceof WP_Comment ) {
		$_comment = $comment;
	} elseif ( is_object( $comment ) ) {
		$_comment = new WP_Comment( $comment );
	} else {
		$_comment = WP_Comment::get_instance( $comment );
	}

	if ( ! $_comment ) {
		return null;
	}

	/**
	 * Fires after a comment is retrieved.
	 *
	 * @since 2.3.0
	 *
	 * @param mixed $_comment Comment data.
	 */
	$_comment = apply_filters( 'get_comment', $_comment );

	if ( $output == OBJECT ) {
		return $_comment;
	} elseif ( $output == ARRAY_A ) {
		return $_comment->to_array();
	} elseif ( $output == ARRAY_N ) {
		return array_values( $_comment->to_array() );
	}
	return $_comment;
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *