Популярные записи в WordPress без плагина


Популярные записи в WordPress — это записи, наиболее часто комментируемые посетителями сайта, а значит самые посещаемые и интересные. Выводятся в основном в сайдбаре и в самой зоне контента, чаще снизу контента. Естественно, желательно, нужно вывести популярные записи в WordPress без плагина и чтобы они выводились с миниатюрами картинок, без использования сторонних скриптов, используя встроенные в CSM внутренние возможности.

Популярные записи в WordPress без плагина с картинками:

мой код

Вывести популярные популярные записи в WordPress можно при помощи плагинов, но увеличение этих самых плагинов тормозит сайт. Скорость загрузки сайта влияет на посещаемость — это уже доказанный факт. Так-же скорость загрузки сайта, говорят влияет на выдачу материала поисковыми системами. Больше плагинов — больше лазеек для злодеев (если плагины давно не обновлялись, то тем более). У меня лично к плагинам никакой неприязни нет, устанавливаю по мере надобности, но если есть возможность легко расширить функционал сайта без плагина, то я пользуюсь этой возможностью. В этом посте я подробно расскажу как вывести популярные записи в WordPress без плагинана на примере своего сайта.

Вывести популярные популярные записи в WordPress я решил думая над тем, как-же мне расширить сайдбар, чего такого бы туда поместить, а то как-то некрасиво обрывался он на половине основного контента. Так-как в PHP я еще не силен (мы еще в у/з плотно не подходили к этому вопросу), пришлось обращаться к палочке-выручалочке. Побродив по рунету я перебирал варианты и думал как-же вывести популярные записи в WordPress без плагина в сайдбар, да и не обязательно в сайдбар, в любое место сайта. С третьего выстрела в яблочко! Нашел код который выводит популярные записи в WordPress, который подходит наилучшим образом, по моему мнению. Этот код хорош тем, что для вывода популярных записей не требуются сторонние скрипты, он пользуется внутренними ресурсами самой CSM WordPress. Так-же посетитель может сразу попасть не только на страницу записи, но и на комментарии к ней. И устанавливается этот код проще простого, в текстовый виджет.

— Все, наконец-то прелюдия закончилась и начинается сама суть вопроса ).

Популярные записи в WordPress исходник:

— Популярные записи выводятся с картинками — миниатюрами.

<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php the_post_thumbnail(array(10,10)); ?></a> <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php the_title(); ?></a> <p>Posted by <strong><?php the_author() ?></strong> on the
<?php the_time('F jS, Y') ?> with
<?php comments_popup_link('No Comments;', '1 Comment', '% Comments'); ?></p>
</li> <?php endwhile; ?> </ul>

Что-бы вывести популярные записи в WordPress без плагина скопируйте и вставьте вышеприведенный код в обычный текстовый виджет. Вы получите в итоге то, что видите на скриншоте.

Но согласитесь, довольно-таки сыровато, постоянно выводит имя автора, дату публикации поста, коряво выводит названия на нерусском языке, миниатюр вообще не видно на горизонте, короче сырой код-болванка, правильно, так оно должно и быть по уму.

Хорошо,применим немного знаний PHP и CSS, уберем дату публикации, уберем имя автора (конечно кому нужно все это, то берите исходник вывода популярных записей в WordPress, на — то он и исходник), увеличим размер выводимой миниатюры и поправим язык, в исходнике выводится 10 популярных записей, я оставил 5, мне вполне достаточно.

Популярные записи в WordPress без плагина с картинками, готовый вариант

<ul id="popular-comments">
<?php
$pc = new WP_Query('orderby=comment_count&posts_per_page=5'); ?>
<?php while ($pc->have_posts()) : $pc->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(array(40,40)); ?></a>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
<p>Всего
<?php comments_popup_link('Нет комментариев;', '1 комментарий', ' комментариев: %'); ?></p>
</li>
<?php endwhile; ?>
</ul>

И откроем таблицу стилей (Style CSS) и в самое окончание вставим этот код:

/*популярные записи
/*-----------------------------------------------------------------------------------*/
#popular-comments {
list-style:none; width:240px; /* Ширина блока */
}
/* Стиль для списка записей */
#popular-comments li {
overflow:auto;
margin:5px 0px;
border-bottom:solid #E6E6E6 1px;
}
/*Стиль миниатюр*/
#popular-comments li img {
float:left;
margin-right:10px;
border:2px solid #EEEEEE;
}
#popular-comments li p {
margin-top:5px;
}

Правьте этот код под свой блог. Так-как ширина сайдбара у всех разная и цвета сайта разные. Смотрите комментарии, открывайте CSS справочник и колдуйте. Все элементарно. Работоспособность кода проверенна на трех разных шаблонах. Везде работает.

— Кому нужна помощь в установке настройке популярных записей в wordpress без плагина, обращайтесь, с удовольствием помогу вывести этот код в стиле вашего сайта, как захотите.

Этот код популярных записей в WordPress можно выводить во всех записях блога. Нужно просто добавить этот код в файл Одна запись (Single.php) в нужное вам место. И поменять стили.

Может кто-то хочет вывести записи без картинок, миниатюр?

Вот код вывода популярных записей в WordPress без картинок:

<h2>Популярные записи</h2> <ul> <?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 5");
foreach ($result as $post) { setup_postdata($post);
$postid = $post->ID; $title = $post->post_title; $commentcount = $post->comment_count; if ($commentcount != 0)
{ ?> &nbsp; <li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>"> <?php echo $title ?></a> (<?php echo $commentcount ?>)</li> <?php } } ?> &nbsp; </ul>

Только скажу, что я его не проверял, но судя по выше представленному, должен быть нормальным. Для дополнительной перелинковки вполне подойдет.&nbsp

Если популярные записи не отображаются в текстовом виджете, то добавьте в файл (function.php) код, который проще говоря, разрешает вывод php кода в виджетах:

add_filter('widget_text','sp_widget_execute_php',100);
function sp_widget_execute_php($text) {
if(strpos($text,'<?') !== false) {
ob_start();
eval('?>'.$text);
$text = ob_get_contents();
ob_end_clean();
}
return $text;
}

— Кому понравилась статья «Популярные записи в WordPress без плагина», отмечайте кнопками соц. сетей, добавляйте в закладки. Подписывайтесь на новинки блога. Дальше будет много чего интересного.


Похожие по Тегам статьи


26 thoughts on “Популярные записи в WordPress без плагина

  1. Егор Автор записи

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

  2. Александр Каратаев

    А почему-бы плагином не воспользоваться? Зачем туда вставлять, сюда вставлять… Плагин поставить — он сам всё сделает.

    1. Егор Автор записи

      Здравствуйте, Александр. Конечно, кто не хочет, или у кого нет времени разбираться с кодами, можно поставить плагин. Я раньше так и делал. И однажды обратил внимание на количество тех самых плагинов. У меня их было 32 ! Знаете, как снежный ком, поставил один, потом другой….
      WordPress сам по себе «тяжелый движок» плюс необходимые плагины, такие как Cео Пак. Почему бы не реализовать какую-то функцию без плагина. Тем более, что можно использовать ресурсы самого движка, не подключая сторонние скрипты?

      1. Александр+Каратаев

        Егор, я раньше тоже писал свой код и старался заменить им плагины. Есть кстати такой код у меня и для вывода связанных записей, статья соответствующая тоже есть. Но по факту оказалось, что код, вставленный в functions.php в большинстве случаев нагружает блог больше, чем соответствующий плагин. Об этом, между прочим, предупреждают и разработчики WordPress.
        И когда вот это всё у меня в голове уложилось, я стал писать плагины и заменять свои-же коды своими-же плагинами. В чём отличие? В плагине, практически тот-же самый код. Плюс удобные настройки, чего нет в коде. Люди, которые установили себе эти плагины — довольны.
        Я не утверждаю, что все коды необходимо заменить плагинами. Но зачастую лучше использовать плагин. Все обоснования я тоже писал у себя…

        1. Егор Автор записи

          Согласен, если скрипт кривой. Я не спорю насчет плагинов. Сам с удовольствием пользуюсь некоторыми. И кто в кодах не разбирается, так конечно плагины в помощь. Все удобно.
          А данный код, это ведь даже не скрипт, а просто вызов функции вывода, которая есть в WordPress. А к вам, Александр я обязательно зайду на сайт, время пока нет. Уверен, что найду много полезного.

  3. Татьяна

    Привет, интересная статья, как раз сейчас думаю над этим вопросом.

    1. Егор Автор записи

      Здравствуйте, Татьяна, единственное, что нужно, немного совсем разбираться в СSS. Есть много очень хороших справочников и онлайн генераторов.

  4. Надежда

    Что-то у меня ничего не получилось, ладно, буду пользоваться плагинами — проще

    1. Егор Автор записи

      А что именно не получилось? В не поставили наверное код в функшен файл.
      У меня есть готовый таб-виджет с выводом популярных записей.

        1. Егор Автор записи

          Я недавно проверял. Все работает. Там внизу красным написано.

  5. Дмитрий

    Здравствуйте. У меня код выводит последние записи, а не популярные.

  6. Егор Автор записи

    Здравствуйте, интересно, как так? Я этот код проверял, он у меня стоял здесь, пока я табы не поставил.

      1. Егор Автор записи

        Код правильный. Он просто показывает у меня 5 записей, и если на сайте всего 5 записей, он полюбому покажет 5 записей, даже если нет комментариев. Далее, по мере поступления комментов, код уже ставит посты по количеству комментариев.

        1. Дмитрий

          Записей у меня больше 20, а вот комментарии я отключил. Как то не уловил из статьи, что популярность определяется комментариями…

          1. Егор Автор записи

            Можно написать код вывода рейтинга статей по посещениям, или, например, по количеству «лайков». Можно плагин посмотреть какой-нибудь.

      2. Алексей

        Конечно же лучше сделать что-то средствами вордпресса, чем плагина. Это всегда лишняя нагрузка в зависимости от профессиональных навыков человека, сделавшего плагин. Но в любом случае вордпресс развивается и могут меняться и хуки и функции, поэтому корректней было бы написать для каких версий вордпресса этот код точно работает. Т.е. на каких версиях код протестирован. Но это уже на усмотрение автора.

        1. Егор Автор записи

          В этом коде версия движка не важно какая, с момента поддержки
          WP_Query. Не помню точно с какой версии. Это не важно короче говоря.

  7. Сергей

    Код работает. Но у меня то же не особо то с комментариями, хотелось бы, чтоб по просмотрам выводил записи.

    1. Егор Автор записи

      Сергей, думается нужно сначала поставить скрипт, считающий кол-во просмотров статьи, а потом уже просто заменить в этом -же коде пару строчек. Может и напишу позже статью, как это все реализовать.

  8. артем

    здравствуйте, Егор. вопрос немного не по теме. у меня миниатюры в записях выводятся после заголовка перед текстом в виде шапки. не подскажете, как организовать вывод миниатюры, например, после первого предложения или первого абзаца статьи?

    1. Егор Автор записи

      Здравствуйте, Артем. Просто никак не выведешь. Дело в том, что миниатюры выводятся перед постом функцией

       
      <?php if ( ! post_password_required() && ! is_attachment() ) :
      the_post_thumbnail();
      endif; ?>
      

      Ее в зону контента нет смысла запихивать. Проще всего выводить обычную картинку в любом месте контента. И какого нужно размера.

      А что-бы миниатюра выводилась только в анонсах, найдите у себя в шаблоне вышепоказанную функцию и просто закомментируйте ее нафиг или вырежте. Обычно она находится в файле content.php, либо single.php

      1. артем

        Понятно, спасибо! В моем шаблоне в настройках можно отключить отображение миниатюры в записях, просто хотел немного изменить ее расположение, сместив вниз.

  9. Виктор

    Юрий, я специально проверил счетчик, зайдя ка Вам на страницу с разных источников, со страницы категории и с поиска. Счетчик работает. В чем причина не могу сказать, посмотрите, что будет завтра.