В начало блога На главную

Вывод последних комментариев

Чтобы вывести последние комментарии нужно поместить в файл functions.php вашей темы или в сам файл откуда выводятся комментарии следующий код:

/* Функция для вывода последних комментариев в WordPress. Параметры:
$limit - сколько комментов выводить. По дефолту - 10
$ex - обрезка текста комментария до n символов. По дефолту - 45
$cat - Включить(5,12,35) или исключить(-5,-12,-35) категории, указываются id категорий через запятую. По дефолту - пусто - из всех категорий.
$echo - выводить на экран (1) или возвращать (0). По дефолту - 1
$gravatar - показывать иконку gravatar, указывается размер иконки, например, 20 - выведет иконку шириной и высотой в 20px
===================================================================================== */
function kama_recent_comments($limit=10, $ex=45, $cat='', $echo=1, $gravatar=0){
global $wpdb;
if($cat){
$IN = (strpos($cat,'-')===false)?"IN ($cat)":"NOT IN (".str_replace('-','',$cat).")";
$JOIN = "LEFT JOIN $wpdb->term_relationships rel ON (p.ID = rel.object_id)
LEFT JOIN $wpdb->term_taxonomy tax ON (rel.term_taxonomy_id = tax.term_taxonomy_id)";
$AND = "AND tax.taxonomy = 'category'
AND tax.term_id $IN";
}
$sql = "SELECT comment_ID, comment_post_ID, comment_content, post_title, guid, comment_author, comment_author_email
FROM $wpdb->comments com
LEFT JOIN $wpdb->posts p ON (com.comment_post_ID = p.ID) $JOIN
WHERE comment_approved = '1'
AND comment_type = '' $AND
ORDER BY comment_ID DESC
LIMIT $limit";

$results = $wpdb->get_results($sql);

$out = '';
foreach ($results as $comment){
if($gravatar)
$gravatar = "";
$comtext = strip_tags($comment->comment_content);
$leight = (int) iconv_strlen( $comtext, 'utf-8' );
if($leight > $ex) $comtext = iconv_substr($comtext,0,$ex, 'UTF-8').' …';
$out .= "\n

  • $gravatar".strip_tags($comment->comment_author). ": " . "post_title}'>{$comtext}
  • ";
    }

    if ($echo) echo $out;
    else return $out;
    }

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

    10 — это количество комментариев, которые будут показаны, а 40 — сколько символов из текста комментария будет выведено. Символы считаются после того, как из текста были вырезаны все HTML теги, чтобы сохранить равную длину текстов.

    Также, можно показывать комментарии для постов из заданных рубрик (включать рубрики) или показывать комментарии для всех постов кроме постов для определенных рубрик (исключать рубрики). Включение или исключение рубрик задается в третьем параметре, указывать нужно идентификаторы рубрик (увидеть их можно в админке в разделе «рубрики»). Для исключение перед идентификатором ставится знак «-«.

    Пример:

    Выведет 10 комментариев, с длинной текста до 40 символов, для постов из рубрик 5,10,34. Чтобы исключить эти рубрики нужно будет вызвать функцию так:

    Одновременно включать и исключать рубрики нельзя! Впрочем, это лишено здравого смысла. Если нужно возвратить результат для дальнейшей обработки в php, а не выводить на экран, то в четвертом параметре указываем false или 0:

    Если нужно включить показ аватарок из сервиса gravatar, то указываем в последнем параметре $gravatar, размер необходимой аватарки (например, 20 — активирует показ аватарок и выведет иконку шириной и высотой в 20px).

    Автор wp-kama

    Рассказать: