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

Привет дорогой друг, сегодня на WebMasterMaksim.ru, я напишу маленькую заметку и расскажу как вывести блок популярные статьи WordPress без плагинов.

Итак, о важности внутренней перелинковки я уже сказал не мало и повторяться не буду, скажу только, что это очень важно в плане seo wordpress.

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

Провожу бесплатное обучение на Форекс
Я ВебМастерМаксим провожу консультирование по заработку на Форекс! Вы с легкостью повторите мой путь! Интересует?
Форекс обучение

Постоянные читатели моего блога знают, что я все стараюсь реализовать без плагинов, вот все статьи этой темы:

А вот видео о перелинковке:


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

Код вывода популярных статей WordPress по количеству просмотров.

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

[php]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);
}
}
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;
}[/php]

Далее код счетчика нужно вставить в файл single.php внутрь цикла loop:

[php]<!—?php setPostViews(get_the_ID()); ?—>[/php]

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

[php]
<div class="popular">
<h3 class="widget-title">Популярные статьи</h3>
<ul>
<?php
$args = array( ‘numberposts’ => 5, ‘meta_key’ => ‘post_views_count’, ‘orderby’ => ‘meta_value_num’, ‘order’ => ‘DESC’ );
query_posts($args);
while ( have_posts() ) : the_post();
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; wp_reset_query(); ?>
</ul>
</div>
[/php]

Разумеется чтобы блок популярных статей вписывался в дизайн вашего сайта нужно задать правила в вашем файле стилей, а в самом коде уже предусмотрен контейнер popular.

numberposts’ => 5 — отвечает за число выводимых ссылок.

Код вывода популярных статей WordPress по количеству комментариев.

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

[php]
<div class="popular">
<h3 class="widget-title">Популярные статьи</h3>
<ul>
<?php
$posts_qty = 5;
$period = 90;
$interval = date(‘Y-m-d’, strtotime("-$period days"));
$result = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = ‘post’ AND post_status = ‘publish’ AND post_date > ‘$interval’ ORDER BY comment_count DESC LIMIT 0 , $posts_qty");
foreach ($result as $post) : setup_postdata($post);
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> (<?php comments_number(‘0’, ‘1’, ‘%’); ?>)</li>
<?php endforeach; ?>
</ul>
</div>
[/php]

Как вы видете в коде настроен отбор пяти статей за 90 дней, вы можете поменять эти параметры на ваши, путем изменения $posts_qty = 5 $period = 90.

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

Понравилась статья?! Жми на кнопку!
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(18 голосов, в среднем: 3.6 из 5)
загрузка...
  • GeLnx

    Супер! Спасибо Макс, очень помогло! Полезный сайт ;)

  • Ксения

    Здравствуйте!

    Во время работы допустила ошибку, не сохранила исходный код. Что-то, наверное, не так ввела. Теперь все пути на сайт закрыты, пишет:
    Синтаксическая ошибка : синтаксическая ошибка, неожиданный конец $ в / home/u733067008/public_html/wp-content/themes/mantra/functions.php на линии 44

    Вы мне можете помочь?

  • admin

    Ксения, так восстановите из бекапа файл functions.php и все заработает. А вообще прежде чем что-либо делать нужно сохранять файл.

  • Евгений

    Добрый день! Ваш код прекрасно выводит записи по количеству просмотров, но единственная проблема — он выводит исключительно по 10 записей. Здесь «numberposts’ => 5» я ставил разное значение, но ничего не менялось. Как это исправить?

  • admin

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

  • Канадец

    Всё установил, всё работает, одна проблема — “numberposts’ => 5″ а выводится больше записей. Как быть?

  • Канадец

    Только не бейте! Поковырялся в Нете и нашёл решение!

    Вместо numberposts надо писать posts_per_page

    Всё работает как надо и никаких гвоздей. А так спасибо вам за идею. Код скопировал и буду хранить в отдельном файле.

  • admin

    Да вроде должно работать, у меня работает, может у вас кэш установлен, попробуйте обновить.

  • Канадец

    Кэша нет. Блог на стадии создания. Просто тупо пишешь posts_per_page и всё работает

  • Анатолий

    А как сделать вывод с изображениями?

  • admin

    Сделайте вывод миниатюр, вот — https://webmastermaksim.ru/wordpress/sozdanie-miniatyur-ili-avtomaticheskaya-generaciya-miniatyur-v-wordpress.html

  • Анатолий

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

    ?
    У меня без неё работает. К тому же она закомментирована.

  • admin

    Ну так уберите ее!

  • Valery

    Здравствуйте. Помогите. Я решил сделать как вы говорили. Но у меня не получилось. Сначала я в functions.php и single.php вставил код, а зятем его удалил. После этого у меня начали появляться ошибки. Когда жму открыть панель, для входа у меня выбивает ошибку

    Помогите войти в панель.

  • admin

    Здравствуйте Valery! Зайдите в с-панель хостинга найдите файл в котором вносили изменения и удалите тот код который вы вставили! Но в вашем случае наверно нужно сделать откат (я надеюсь ваш хостинг делает резервное копирование). Вы наверное не туда установили код!

  • Vic776

    как задать правило стилей

  • admin

    В файле style.css вашей темы прописываются все стили.

  • Борис

    Подскажите, пожалуйста, при подсчете по количеству посещений, как ограничить период подсчета (как при подсчете по количеству комментов)? А то у некоторых статей бывают всплески на день-два, а они постоянно занимают звание популярной…

  • admin

    Борис не знаю!

  • Евгений

    А как сделать вывод популярных рубрик?

  • admin

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

  • Артем

    Спасибо большое, профессиональное решение, лучше не нашел! Автору огромная благодарность!

  • Serg

    а как выводить не рейтинг постов за все время а за 30 дней к примеру (т.е. счетчик сбрасывается каждые 30 дней )?
    Без возможности сброса счетчика польза от кода сомнительна. С ним в блоке навечно пропишутся статьи с большим возрастом, набравшие за все время наибольшее количесво просмотров..новые актуальные посты в рейтинг не попадут даже если будут иметь в текущем периодле фантастическое количество ежедневных просмотров

  • https://webmachine.pp.ua/ Gran Torino

    «…Далее код счетчика нужно вставить в файл single.php внутрь цикла loop:…»

    single.php — это страница записи, в записях выводят саму запись, обычно одиночно, при чем тут цыкл?

  • Руслан Лемеш

    какие то кривые коды! ничего не работает! дело в то как она здесь выводятся! Может и работают, но вот буфер криво копирует!

  • Виктор

    Спасибо, нашел нужный код :)
    Но у меня к вам есть один вопрос. Как сделать, чтоб записи выводились в слайдере?

↑ Получай комментарии на E-MAIL