Как отобразить комментарии пользователя, который находится в текущей сессии на сайте WordPress?

Как настроить вывод комментариев пользователя из текущей сессии в отдельном разделе на странице, чтобы показывались только его собственные комментарии? Например, когда Вася оставил 5 комментариев, чтобы отображались именно его 5 комментариев в отдельной области на странице.
  • 25 мая 2024 г. 10:40
Ответы на вопрос 2
Для отображения комментариев определенного пользователя, который находится в текущей сессии на сайте WordPress, можно использовать следующий код:

```php
$current_user = wp_get_current_user();
$user_comments = get_comments( array(
    'user_id' => $current_user->ID,
    'status' => 'approve', //только одобренные комментарии
) );

foreach ( $user_comments as $comment ) {
    echo '<p>' . $comment->comment_content . '</p>';
}
```

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

Поместите созданный шаблон страницы в тему вашего сайта и создайте страницу в административной панели WordPress, используя этот шаблон. После этого пользователь сможет видеть только свои комментарии на этой странице.
Если что,  делается это вот так. (собрано на коленке, но работает). 

<?php
    $args = array(
        'post_author' => $current_user->ID,
        'number' => 10, // how many comments to retrieve
        'status' => 'approve'
        );

    $comments = get_comments( $args );

    if ( $comments )
    {
        $output.= "<ul>\n";
        foreach ( $comments as $c )
        {
        $output.= '<li>';
       // $output.= '<a href="'.get_comment_link( $c->comment_ID ).'">';
        $output.= get_comment_text($c->comment_ID);
        $output.= '</a>, Posted on: '. mysql2date('m/d/Y', $c->comment_date, $translate);
        $output.= "</li>\n";
        }
        $output.= '</ul>';

        echo $output;
    } else { echo "No comments made";}
?>
Похожие вопросы