Для простоты взаимодействия пользователей и авторов, в блогах стараются выводить последние комментарии. Они способствуют общению.
Чтобы использовать такую возможность в своем блоге, я нашел плагин: WP-RecentComments
Но как-то не люблю я плагины. Редактировать их неудобно или из-за их недоступности, но я решился на использование собственной функции, вместо wp-recentcomments.
function last_comment($count = 10, $echo = true){
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type
FROM $wpdb->comments
LEFT OUTER JOIN $wpdb->posts ON ( $wpdb->comments.comment_post_ID = $wpdb->posts.ID )
WHERE comment_approved = '1'
AND comment_type = ''
AND post_password = ''
ORDER BY comment_date_gmt DESC
LIMIT $count";
$comments = $wpdb->get_results($sql);
$out = "\n";
foreach($comments as $comment){
$tpl = ''.$comment->comment_author.' - '.$comment->post_title.', '.comm_date($comment->comment_date_gmt);
$out .= "\n\t".'
';
}
$out .= "\n";
if ($echo) echo $out;
else return $out;
}
function comm_date($time){
$in = array('-',':');$on = ' ';$time = str_replace($in,$on,$time);
list($Y,$M,$D, $h, $m, $s) = sscanf($time, '%s %s %s %s %s %s');
$month = array(
'01'=>'января',
'02'=>'февраля',
'03'=>'марта',
'04'=>'апреля',
'05'=>'мая',
'06'=>'июня',
'07'=>'июля',
'08'=>'августа',
'09'=>'сентября',
'10'=>'октября',
'11'=>'ноября',
'12'=>'декабря'
);
return "$D ".$month[$M]." $Y в $h:$m";
}
Конечно не аналог того плагина, но то, что нужно.
Работа с функцией очень проста. Для просмотра последних комментариев, в любом месте вашего шаблона вставьте:
Вывести 20 последних комментариев:
Для дальнейшей работы с комментариями без вывода:
Использовать 20 последних комментариев для дальнейшей обработки.
Каждый комментарий выводится следующей строчкой:
$tpl = ''.$comment->comment_author.' - '.$comment->post_title.', '.comm_date($comment->comment_date_gmt).';';
Ее вы можете редактировать сколь угодно, вот список переменных:
- $comment->comment_author — Автор комментария;
- $comment->comment_ID — Идентификатор (ID) комментария;
- $comment->post_title — Название статьи данного комментария;
- comm_date($comment->comment_date_gmt) — Дата вывода комментария
Есть ошибки в коде? Можно или безопасно использовать такую конструкцию?
Ответить | Цитировать
Ответить | Цитировать
Затем нужно добавить стили.
ul{margin:3px 0 0 15px;list-style:none;color:#ababab;font-size:10px}
li{margin:0 0 5px 0;}
span{color:#e51d9b;}
Ответить | Цитировать
то есть необходимо вывести названия постов, которые последние комментировались.
Ответить | Цитировать
то есть необходимо вывести названия постов, которые последние комментировались.»
вот так, если кому-то будет полезно:
GROUP BY post_title
ORDER BY comment_date_gmt DESC
спасибо, за код!
Ответить | Цитировать
Ответить | Цитировать