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]
Чтобы внедрить вывод комментариев текущего пользователя непосредственно в шаблон, можно использовать функцию:
Просто. Гибко. Удобно.








