Как отобразить комментарии пользователя, который находится в текущей сессии на сайте 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, используя этот шаблон. После этого пользователь сможет видеть только свои комментарии на этой странице.
Если что,  делается это вот так. (собрано на коленке, но работает). <br/> <br/> <pre><code class="php">&lt;?php
    $args = array(
        'post_author' =&gt; $current_user-&gt;ID,
        'number' =&gt; 10, // how many comments to retrieve
        'status' =&gt; 'approve'
        );

    $comments = get_comments( $args );

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

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