Шорткод для вывода комментариев текущего пользователя

Настройки
Пример шорткода, выводящего определенное количество комментариев текущего, залогиненного пользователя блога.

WordPress является отличной системой управления сайтом, позволяя создавать сайты самого разного предназначения, от визиток и портфолио до сложных корпоративных порталов и интернет-магазинов. Однако что для меня не понятно, так это почему до сих пор не реализована на уровне движка работа с пользователями — нет элементарного виджета для вывода подробной информации об авторе, нет механизмов работы с текущим пользователем. Все, что есть, так это вывод аватара текущего пользователя и ссылка на профиль. Но в современных реалиях этого не достаточно, и поэтому приходится искать дополнительные плагины, сочинять код, который хоть как-то компенсирует отсутствующий, но весьма востребованный функционал.

Шорткод для вывода комментариев текущего пользователя

В одном блоге была поставлена задача вывода последних комментариев текущего пользователя на его странице-профиле. Задача вроде простая, но WordPress не предоставляет никаких инструментов для ее решения. Поэтому пришлось ее решать своими силами. В итоге я внедрил шорткод, с помощью которого можно выводить заданное количество комментариев текущего, залогиненного пользователя.

Код шорткода для вставки в файл functions.php:

function show_recent_comments_function( $atts, $content = null )
{
  extract( shortcode_atts( array( 
    "count" => 10, //количество выводимых комментариев
    "pretty_permalink" => 0
    ), $atts ));

  $output = '';
  
  if ( is_user_logged_in() )
  {
    global $current_user;
    get_currentuserinfo();

    $args = array(
      'user_id' => $current_user->ID,
      'number' => $count,
      'status' => 'approve' //показывать только одобренные администратором комментарии
      );

    $comments = get_comments( $args );
    if ( $comments )
    {
      $output.= "n";
      foreach ( $comments as $c )
      {
      $output.= '<div>';
      if ( $pretty_permalink )
        $output.= '<div><a>comment_ID ).'">';
      else
      $output.= '<div><a>comment_post_ID.'#comment-'.$c->comment_ID.'">';
      $output.= 'ссылка'; 
      $output.= '</a></div>';
      $output.= '<div>';   
      $output.= $c->comment_content;
      $output.= '</div>';
      $output.= "</div>n";
      }
      $output.= '';
    }
  }
  else
  {
    $output.= "<div>Просмотр собственных комментариев комментариев доступен только зарегистрированным пользователям. Войти.</div>";
  }
  return $output;
}

add_shortcode ( 'sr_comments', 'show_recent_comments_function' );

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

[sr_comments]

По-умолчанию выводятся последних 10 комментариев текущего пользователя, но это количество можно изменить, указав в шорткоде параметр:

[sr_comments count=25]

Чтобы внедрить вывод комментариев текущего пользователя непосредственно в шаблон, можно использовать функцию:

 

Просто. Гибко. Удобно.

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий