BloGGood.ru

Блог Костаневича Степана

WordPress, PHP, HTML, CSS, Windows

Блог на разные темы, seo-оптимизация, раскрутка сайта, создание сайта, вкусные эффекты для сайта и многое другое…

Главная » Wordpress » Как вывести популярные записи на WordPress без плагина

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

2014-08-05 / Вр:23:10 / просмотров: 20417

Итак, речь идет о выводе популярных записей.

Для чего нужно выводить популярные записи?
1). Популярные записи являются хорошей перелинковкой сайта или блога.

2). Популярные записи влияют на поведенческие факторы посетителей (помогают задержать читателя на странице и даже сделать переход).

Выводить популярные записи можно разными способами. Наипростейший – использовать плагин (такой, например, как «Wordpress Popular Posts»). Но можно сделать это и без плагина, что намного лучше и выгодней для вашего ресурса.

Иногда моя собственная лень приносит и мне немало хлопот. До сегодняшнего дня я тоже выводил популярные записи на WordPress при помощи плагина. Но, поскольку я сторонник минимального количества плагинов, то с удовольствием распрощался с еще одним плагином :x.

Вторую часть этой статьи я посвящу подробной инструкции, как вывести популярные записи на WordPress без плагина.

Для начала создадим счетчик просмотра записей. Для этого зайдите в админ панель => «Внешний вид» => «Редактор» => «functions.php» и вставьте в самом конце кода перед знаком  ?> вот такой код:

/* количество просмотров */

 function getPostViews($postID){
 $count_key = 'post_views_count';
 $count = get_post_meta($postID, $count_key, true);
 if($count==''){
 delete_post_meta($postID, $count_key);
 add_post_meta($postID, $count_key, '0');
 return "0 просмотров";
 }
 return ' Просмотров: '.$count;
 }
 function setPostViews($postID) {
 $count_key = 'post_views_count';
 $count = get_post_meta($postID, $count_key, true);
 if($count==''){
 $count = 0;
 delete_post_meta($postID, $count_key);
 add_post_meta($postID, $count_key, '0');
 }else{
 $count++;
 update_post_meta($postID, $count_key, $count);
 }
 }

Пример:

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

Нажмите «Обновить файл».  Отлично!

Теперь нужно вставить функцию для сбора статистики. Рекомендую следующий код вставлять в самом конце файла single.php (админ панель => «Внешний вид» => «Редактор» => «single.php»):

<!-- для сбора информации просмотра страницы -->
<?php setPostViews(get_the_ID()); ?>
<!-- / для сбора информации просмотра страницы -->

Кстати, все эти действия я расписывал в статье «Выводим количество просмотров страницы на WordPress». Вы можете почитать эту статью, если желаете вывести количество просмотров записи.

Ой, что-то я отвлекся от темы :idea:.
Теперь будем выводить популярные статьи в записях.

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

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

В файле «single.php» вставьте код в то место, где вы хотите видеть популярные записи:

<!-- Популярные статьи на bloggood.ru -->
<div class="pohoji-tems">
<h2>Популярные статьи :</h2>
<ul>
        <?php
            $args = array( 'posts_per_page' => 5, 'meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' );
            query_posts($args);
            while ( have_posts() ) : the_post();
        ?>
<li>
<a onclick="return !window.open(this.href)" <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; wp_reset_query(); ?>
</ul>
</div>

Обратите внимание на строку 6 – цифра указывает количество популярных записей, которые будут выводиться. У себя на блоге я выставил 5.

Вот результат как это выглядит у меня:

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

○ Вывод популярных статей с  миниатюрами

В файле «single.php» вставьте код в то место, где вы хотите видеть популярные записи:

<!-- Популярные статьи на bloggood.ru -->
<div class="pohoji-tems">
<h2>Популярные статьи:</h2>
<ul>
        <?php
            $args = array( 'posts_per_page' => 5, 'meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' );
            query_posts($args);
            while ( have_posts() ) : the_post();
        ?>
<li>
<a onclick="return !window.open(this.href)" href="<?php the_permalink() ?>">
<?php the_post_thumbnail('thumbnail'); ?></a>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
</li>
<?php endwhile; wp_reset_query(); ?>
</ul>
</div>

Обратите внимание на строку 6 – цифра указывает количество популярных записей, которые будут выводиться. У себя на блоге я выставил 5.

Вот результат, как это выглядит у меня:

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

○ Вывод популярных статей с миниатюрами, датой публикации, количеством комментариев и просмотров

В файле «single.php» вставьте код в то место, где вы хотите видеть популярные записи:

<!--Популярные статьи на bloggood.ru -->
<div class="pohoji-tems">
<h2>Популярные статьи:</h2>
<ul>
        <?php
            $args = array( 'posts_per_page' => 5, 'meta_key' => 'post_views_count', 'orderby' => 'meta_value_num', 'order' => 'DESC' );
            query_posts($args);
            while ( have_posts() ) : the_post();
        ?>
<li>
<a onclick="return !window.open(this.href)" href="<?php the_permalink() ?>">
<?php the_post_thumbnail('thumbnail'); ?></a>
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
<br>Дата:<?php the_time(' j F Y'); ?>
<br>Прокомментировано:<?php comments_number( 'пока нет', '1', '%' ); ?>
<br><?php echo getPostViews(get_the_ID()); ?>
</li>
<?php endwhile; wp_reset_query(); ?>
</ul>
</div>

Обратите внимание на строку 6 – цифра указывает количество популярных записей, которые будут выводиться.  У себя на блоге я выставил 5.

Вот результат, как это выглядит у меня:

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

Чтобы украсить популярные записи, воспользуйтесь таблицами стилей CSS для класса «.pohoji-tems».
Вот и все! До скорых встреч!!! :smile:

Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓

Получай обновления блога!!! Подпишись:

Популярные статьи:

34 Ответов на комментарий - Как вывести популярные записи на WordPress без плагина

  1. Слава

    Постоянно обращаюсь к этой странице вашего блога, за помощью в реализации вывода последних записей, а спасибо так и не сказал.

    Спасибо! ;-) все объективно и понятно! Благодаря это статье до меня дошло, как вывести популярные записи из определённой рубрики!

  2. Бектур

    Добрый день!

    спасибо за статью, отличный материал!
    Но, у меня на сайте стоит веб и мобильная версия, переключаютя темы при помощи плагина и с вашим кодом выводится записи только с одной темы на одной теме :(

    как можно сделать так что бы собирались с просмотры с двух тем и выводились одинаковые количества на обе версии (мобильная тема и веб тема) ?

    есть идея, но не знаю как реализовать: код пишется на отдельный пхп файл который собирает количество просмотров и в функциях обеих тем указывается этот файл. Получается: выводит одинаковое количество в двух разных темах ;)

    Был бы благодарен если сможете реализовать это и напишите мне!

    с уважением Бектур

  3. Avatar photo Степан => автор блога

    Пожалуйста, Слава! Приятно слышать такие хорошие слова!

  4. Avatar photo Степан => автор блога

    Здравствуйте! Вы используете для мобильно версии сайта плагин “Плагин MobilePress“?
    В плагине, для переключения мобильной версии есть своя тема (файлы сайта). Файлы имеют точно такие же названия, как и файлы для полной версии сайта (веб). Проделайте все то что написано в статье и для мобильной версии. Должно все работать.

  5. Илья

    Много раз пытался это сделать, но так и не выходило. Как только вставлял код в функции темы, сайт тут же накрывался и приходилось делать бэкап. Можете помочь?

  6. Avatar photo Степан => автор блога

    Вы вставляете код в файле функции перед значком “?>” или после?

  7. Илья

    Честно сказать, уже не помню. Все возможно

  8. Татьяна

    Здравствуйте, Степан!
    Пытаюсь при помощи ваших кодов разместить Популярные статьи в сайдбаре, но не получается. Если размещаю в виджете последний код, то кроме выведения двух фраз (кол-во комментариев и кол-во просмотров) больше ничего нет. Если же вставляю код сразу в сайдбар, все перекошено (два окошка для фото и записи хаотично).
    Буду признательна, если подскажете, как можно решить эту проблему.

  9. Avatar photo Степан => автор блога

    Здравствуйте, Татьяна! Этот код в виджете не вставляется. В сайдбар, можно. Что значит “перекошено” – все работает, но криво отображается или не отображаются популярные статьи?!

  10. Татьяна

    Степан, спасибо за ответ!
    Перекошено – это так: выводятся только два окна для фото, они же “прилеплены” к левому краю сайдбара. Названий статей выводится действительно 5, но какие-то из них размещены под окном, другие – сбоку…

  11. Avatar photo Степан => автор блога

    далее, нужно в CSS-стилях задавать внешний вид к последним записям, выравнивать и т. д.

  12. Витос

    Хорошая -удачная статья щас буду пробовать если че буду просить помощи.

  13. Avatar photo Степан => автор блога

    Спасибо! Да, вы пишите, если что-то не получиться.

  14. Maras

    Спс за статью. Скажите пожалуйста, как обнулить все цифры…?

  15. Avatar photo Степан => автор блога

    Пожалуйста! Я думаю, нужно искать в ответ в БД. Это задача не из легких. Если вы в WordPress-е новичок и с БД не имели дело, не рекомендую экспериментировать, так как можно наделать беду.

  16. Сергей

    Получилось и с картинками.Чтобы было по горизонтали надо сделать так:

    <li style="float:left; width:20%; <?php if ($i%2): ?>border-left:5px solid red; <?php endif; ?> box-sizing: border-box; height:250px;padding:10px;">
  17. Сергей

    Странно, но у меня не работает стиль этого div, все остальные работают… Пробовал менять имя, кавычки, не помогло. Редактировал в админке, в стилях. Проверил на остальных элементах все норм. В чем может быть проблема? :oops:

  18. Avatar photo Степан => автор блога

    Сергей, если Вы брали мой код, то попробуйте вот так:

    .pohoji-tems ul li {
        border: 1px solid #000 !important;
    }
    
  19. Сергей

    :?: Спасибо, Степан. Через пять минут, после того как написал комментарий, разобрался. Проблема была в плагине кэширования. Мне показалось, что я его отключил и обновил кэш. При повторной проверке оказалось, что нет. При этом, старые стили менялись, а новые естественно нет. Наверное, не самый характерный случай, но может кому и пригодиться. У вас очень интересный блог, прочитал почти все. Пишите почаще, удачи вашему блогу и высокой посещаемости.

  20. Avatar photo Степан => автор блога

    Спасибо, Сергей! И Вам и Вашему сайту тоже желаю успеха!

  21. Витос

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

  22. Avatar photo Степан => автор блога

    Все делаете так как написано в статье, только в последний код добавляете не в файл «single.php» а в «index.php».

  23. альберт

    здравсвуйте. Как вывести популярные статьи из определенной рубрики за последние 24 часа (новость дня) и рядом вывести популярную статью за 1 час (новость часа) по просмотрам?
    Сам пробовал код написать не получилось

  24. Вера

    Здравствуйте, Степан. Подскажите, что нужно добавить в код, чтобы популярные записи выводились за определенное время (по количеству дней). спасибо.

  25. Артем

    Нашли решение?)

  26. Avatar photo Степан => автор блога

    Артем, если честно, то я не понял, что Вера спросила у меня, может вы объясните мне и тогда я может подскажу что можно сделать.

  27. Vlad

    Автор, помогите пожалуйста!
    Мне надо в сайдбаре справа разместить нужные записи с миниатюрами, но чтобы я сам задавал какие записи вывести (чтобы сам вставил нужные ссылки), так что не надо всякие счетчики просмотров итд.

  28. Avatar photo Степан => автор блога
    <?php
    $id = 11; // id записи
    $post = get_post($id);
    $content = $post->post_content;
    echo $post->post_content;
    ?>
    

    Почитайте вот эту статью

  29. Серхио

    А как с этим же скриптом вывести популярные записи за последний месяц?

  30. Avatar photo Степан => автор блога

    этим никак.

  31. Сергей

    Можно, пожалуйста, подсказать, как зарегистрировать именно виджет? как подключить эту функцию к register_sidbar? Спасибо

  32. Qwerty

    Степан, подскажите пожалуйста как сделать тоже самое, но для сайдбара

  33. Avatar photo Степан => автор блога

    Вставьте код вместо файла «single.php» в файл «Боковая колонка (sidebar.php)»

  34. Александр

    Поставил этот скрипт вывода статей на сайт , все работает спасибо!
    Но вот заметил в нем один баг-
    если открывается любая статья которая была на 2 месте по количеству просмотров, то счетчик просмотров срабатывает и на этой статье и на статье которая стояла на 1 месте!
    Статьи в разных категориях.
    И этот баг только на статье которая 2я в списке, все остальные нормально отрабатывают.
    У вас на сайте такой же баг.
    Где искать проблему?
    Подскажите пожалуйста!

Добавить комментарий

;-) :| :x :twisted: :smokes: :smile: :shock: :sad: :rose: :roll: :razz: :pop-corne: :oops: :o :mrgreen: :lol: :idea: :grin: :gazeta: :evil: :cry: :cool: :coffe: :arrow: :???: :?: :!:

Чтобы добавить в комментарий код HTML, PHP, CSS, JavaScript, нужно сделать так: [code] ваш код [/code]

Метки: ,

Мои цели на 2018-2019:

1). Закончить тему «Bootstrap»

2). Закончить тему «Все про PHP и MySQL»

3). Создать портфолио и мини интернет-магазин шаблонов

4). Довести количество статей до 800

5). Добиться посещаемости 3000 человек/сутки

6). Увеличить число подписчиков до 250

Статистика по блогу

Количество записей на блоге: 810
Количество страниц на блоге: 20
Количество рубрик на блоге: 28
Количество меток на блоге: 72
Количество комментариев на блоге: 4716