! Михалика - запросто с WordPress:
доступная ручная работа по правилам оптимального интернет(а)
Здравствуйте !
— отредактировано:  2017-06-09
издатель:   в теме: В теме: Без плагинов  реплики: будьте первым в диалоге
 
Запросто с WordPress - студия занимательная МИХАЛИКА

Как добавить ссылки на самые комментируемые по времени посты в сайдбар или на страничку

Как вывести самые комментируемые записи сайта/блога куда-то в сайдбар или на страничку.?. …причём, чтобы записи выводились с миниатюрой, количеством отзывов и пр. и пр. — и чтоб всё это запросто регулировалось: вот сегодня и решим сию задачу!

У меня несколько раз спрашивали — как выводить самые популярные записи, и неплохо бы с вариантом миниатюры… Я пару раз отвечал, а теперь решил написать пост, чтобы при случае отсылать на его страничку.

И снова представляю совершенно рабочий код с сайта wp-kama. Но — там этот код без вариаций вывода картинки (миниатюры).

Итак: и снова я немного дополнил код Тимура: т.е добавил несколько строк, цепляющих картинку к комментируемым статьям.

Приступим к концерту:


код вывода самых комментруемых записей сайта: с миниатюрой

 

 

Всё просто:

 

ниже дан код, который нужно поместить в файл functions.php активной темы, ну или в специальный плагин (что весьма сподручнее и оптимальнее)… как его создать… и все плюсы описаны тут

 

 

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

Мои пояснения обозначены ATs — понятности ради.

 

 

Главное что нужно сказать: я не только прикрутил миниатюры, но и заменил теги списка (li и ul) на див классы: мне так сподручнее всегда… больше воли для работы с css.

Если вам это не подходит, то в моих комментариях дан оригинальный вариант: можете сделать как душе угодно.

 

Что ещё, — конечно же, в финале кое-какие примерные стили css (стили с плюшками красявостей, ибо в большинстве случаев сей код требуют барышни. Но вы всё сами замечательно поправите при строгости желаний)).

 

В общем, весь представленный код вывода самых комментируемых записей блога/сайта полностью рабочий… и готов к использованию…

 

 

 

А вот и сам код:

 

/*** ВЫВОДИМ САМЫЕ КОММЕНТИРУЕМОЕ - ЗАПИСИ **/
/* Функция для вывода постов по количеству комментариев
--------------------------------------------------------
Параметры передаваемые функции (в скобках указано дефолтное значение):
post_num (5) = количество ссылок
format ('') = {date:j.M.Y} - {a}{title}{/a} ({comments})
$days (0) = за последние n дней. Пример: $days=30 выведет посты за последние 30 дней. Или указиваем год за который нужно вывести комментарии. Пример:2009
cache ('') = включить кеш (по умолчанию выключен), указываем 1, чтобы включить
$post_type ('post') = тип записей
---
Вызываем функцию примерно так:
<?php echo kama_most_commented_posts(10, '{a}{title}{/a} <sup>{comments}</sup>', 0, 31); ?>
*/
function kama_most_commented_posts($post_num=4, $format='', $days=0, $cache='1', $post_type='post'){

global $wpdb;

if( $cache ){
$key = (string) md5( $post_num . $format . $days . $post_type );
if ( $cache_out = wp_cache_get($key, __FUNCTION__) )
return $cache_out;
}

if($days){
$AND_days = "AND post_date > CURDATE() - INTERVAL $days DAY";
if(strlen($days)==2017)
$AND_days = "AND YEAR(post_date)=" . trim($days);
}
$sql = "SELECT ID, post_title, post_date, comment_count, guid
FROM $wpdb->posts p
WHERE post_status = 'publish' AND post_type = '$post_type' $AND_days
ORDER BY comment_count DESC ".
($post_num ? " LIMIT $post_num" : '10');
$res = $wpdb->get_results($sql);

if(!$res) return false;
// Формировка вывода
if( $format ) preg_match ('!{date:(.*?)}!', $format, $date_m);
foreach ($res as $pst){
if($pst->comment_count==0) continue;
//прикрутил миниатюру
$Title = $pst->post_title; // ATs прицепляем миниатюру - title
$thumb_id = get_post_thumbnail_id($pst->ID); // прицепляем миниатюру
$thumb_url = wp_get_attachment_image_src($thumb_id,'full', true); // прицепляем миниатюру
$img_url = $thumb_url[0]; // прицепляем миниатюру - цепляет оригинал картинки (уменьшает)
$image = $pst->$img_url;

$x == 'div8' ? $x = 'div4' : $x = 'div8'; // как в оригинале $x == 'li1' ? $x = 'li2' : $x = 'li1';
$title = esc_attr($pst->post_title);
$a = "<div class='pos-cs'><div class='pos-ss'><img title='{$Title}' src='$img_url' alt='{$Title}' /></div><a title='$title' href='". get_permalink($pst->ID) ."' rel='bookmark' onclick='return !window.open(this.href)'>"; // здесь ссылка миниатюры
$Sformat = "$a$title ($pst->comment_count)</a>";
if($format){
$replacement = array(
'{title}' => $title
,'{a}' => $a
,'{/a}' => '</a></div>'
,'{comments}' => $pst->comment_count
);

if($date_m)
$replacement[$date_m[0]] = apply_filters('the_time', mysql2date($date_m[1], $pst->post_date));

$Sformat = strtr($format, $replacement);
}
$out .= "<div class='$x'>$Sformat</div><hr class='basar'>"; // как в оригинале $out .= "<li class='$x'>$Sformat</li>";
}
if( !$out )
return "<li>Нет записей с комментариями</li>";

if( $cache )
wp_cache_add($key, $out, __FUNCTION__);

return $out;
}
/*** ВЫВОДИМ САМЫЕ КОММЕНТИРУЕМОЕ - ЗАПИСИ **/

 

 

Вот строчка вызова функции в том месте, где эта функция самого-самого обсуждаемого необходима:

 

 

<div class="posts-widget-entry"><?php echo kama_most_commented_posts(4, '{a}{title}{/a} <sup>число коммов: {comments}</sup>', 0, 31); ?></div>

 

 

 

 

стили css для кода самых комментируемых записей

 

 

 

.pos-ss img{width:102px;height:72px;margin:0 7px 7px 0;float:left;box-shadow:1px 5px 17px -4px #777;transition:all 1s ease-out}
.pos-ss img:hover{transform:scale(1.8)}
.pos-ss{margin:0;border-radius:4px 4px}
.pos-ss a{border-radius:4px 4px;font-style:italic;font-size:12px;display:block;text-decoration:none}
.pos-ss:hover{}
.div4,.div8{background:#f8f8f8;padding:0 0 10px 0}
.div4:hover,.div8:hover{background:#e9e9e9;padding:0 0 10px 0}
.pos-cs{font-size:12px;}
.pos-cs a{}
.posts-widget-entry{} /** реплика о количестве комментариев **/
hr.basar{width:97%;clear:both;border:1px solid #F9F9F9}

 

 

Ко сведению:

картинки цепляются те, которые вы загружали в качестве заглавной мини-картинки статьи. Так они в нашем случае отображаются чётче… (хотя есть споры, о этаком варианте).

 

если кому-то полезно почитать, о том, как правильно настроить загрузку картинок в админке вордпресс, милости прошу взглянуть на ЭТУ инструкцию… в ней, кстати, описан функционал полезного плагина, который ищет ненужные картинки в ядре сайта (медиафайлы).

 

 


На этом занавес представления опускается…
…на рампы пыль печальная ложится…

 


mihalica.ru

 


подписка feedburner МИГ подписки - ВРЕМЯ знаний!!

 


Благодарности)) и вопросы в комментариях - помогу… в чём дюжу
А также Вы можете просто:
Нажатия на кнопочки определяют Ваше высокое гражданское сознание
ещё статьи по теме:

меточная навигация:


Комментарии © 0 к статье: Как добавить ссылки на самые комментируемые по времени посты в сайдбар или на страничку

Поделитесь соображениями: Ваши мысли очень важны! $ правила комментирования ©

Внимание! Обязательные поля помечены *

 для диалога необходимо принять правила кофиденциальности *
Яндекс.Метрика