Как изменить вывод комментариев Wordpress через хуки с доступом к метаданным комментариев? - PullRequest
1 голос
/ 18 мая 2019

Я хочу добавить некоторые метаданные в мои обзоры продуктов Woo Commerce.

Мой плагин показывает, какой продукт вариант проверяет клиент, и я хотел добавить эту информацию в каждыйиз отзывов (комментариев) клиентов, с небольшим уменьшенным изображением продукта, который также может немного придумать вещи.

Но у меня возникают проблемы с поиском фильтра / крючка для подключения.

Я попробовал это ...

add_filter( 'comment_text', function( string $comment_text ) {

    $comment_text = '<p>Comment text injection</p>' . $comment_text;

    return $comment_text;
});

Это работает, но проблема в том, что он не предоставляет много контекста ... Мне нужен идентификатор комментария, чтобы я мог получить некоторые метаданные окомментарий.

В документации сказано, что для этого фильтра можно передать объект WP_Comment с фильтром ... но в моем случае этого не происходит.

https://developer.wordpress.org/reference/hooks/comment_text

Любые предложения по доступным для использования крючкам / фильтрам - я не хочу начинать взламывать шаблон комментариев.

1 Ответ

1 голос
/ 18 мая 2019

Хук фильтра comment_text допускает 3 аргумента функции (поэтому вы пропустили 2 из них):

  • $comment_text (строка), основной фильтруемый аргумент
  • $comment (объект), текущий WP_Comment Экземпляр объекта
  • $args (массив), массив аргументов

Итак, в этой подключенной функции приведен пример таргетинга примечаний к заказу, например:

add_filter( 'comment_text', 'customizing_comment_text', 20, 3 );
function customizing_comment_text( $comment_text, $comment, $args ) {
    if( $comment->comment_type === 'review' ) {
        $comment_text = '<p>Comment text injection</p>' . $comment_text;
    }
    return $comment_text;
}

Код помещается в файл functions.php вашей активной дочерней темы (или активной темы). Проверено и работает.

enter image description here


Чтобы получить конкретные метаданные комментария , вы будете использовать функцию get_comment_meta(), например:

$meta_value = get_comment_meta( $comment->comment_ID, 'your_meta_key', true );

Чтобы добавить определенные метаданные комментария , вы будете использовать функцию add_comment_meta(), например:

add_comment_meta( $comment_id, 'your_meta_key', $meta_value, $unique );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...