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