+7(982) 597-7179

WordPress вывод популярных постов

Время на прочтение: 2 мин.
snimok

Здравствуйте, уважаемые читатели блога Компьюти. Сегодня мы поговорим о создании списка популярных записей без использования плагина. Почему лучше не использовать плагины написано много статей. В их защиту могу сказать то, что чаще плагин будет работать лучше, чем если вы напишите код сами. На сегодняшний день, практически, для любого жизненного случая есть плагин wordpress. И если плагин решает поставленную задачу на 97%, то я лучше использую его, чем буду писать свой велосипед.

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

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

Есть два вариант вывода популярных записей:

  1. По количеству просмотров
  2. По количеству комментариев

Я долго думал и решил, что по количеству просмотров эффективней. Ведь мы редко пишем комментарии на статью, но она учитывается в просмотре. И получается так, что статья с наибольшим количеством просмотров, может быть с наименьшим количеством комментариев.

И так, нам надо включить учет просмотров на вордпресе:

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;
}
function get_PostViews($post_ID){
    $count_key = 'post_views_count';
    $count = get_post_meta($post_ID, $count_key, true);
    return $count;
}
function post_column_views($newcolumn){

    $newcolumn['post_views'] = __('Просмотры');

    return $newcolumn;

}
function post_custom_column_views($column_name, $id){
    if($column_name === 'post_views'){
        echo get_PostViews(get_the_ID());
    }
}
add_filter('manage_posts_columns', 'post_column_views');
add_action('manage_posts_custom_column', 'post_custom_column_views',10,2);

ЭТО ВСТАВИТЬ В ЦИКЛ loop В single.php

<?php setPostViews(get_the_ID()); //подсчет просмотров?>

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

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

Теперь не надо ставить пузомерки.

Для вывода популярных статей, вставьте следующий код в файл single.php.

<div class="read_else">Читайте также:</div>
<div class="read_else_posts">
      <?php
      $category = get_the_category();
      $cat_id = $category[0]->cat_ID;

      $args2 = array(
      'showposts'   => '4',
      'meta_key'    => 'post_views_count',
      'orderby'     => 'meta_value_num',
      'order'       => 'rand',
         'post__not_in' => array($post->ID),
         'ignore_sticky_posts' => '1',
      'cat'       => $cat_id
      );
      query_posts( $args2 );
      while ( have_posts() ) : the_post();
      echo '<div class="read_else_post">';
      echo'<div class="read_else_thumb">';
         if ( has_post_thumbnail() ) {the_post_thumbnail(array(150, 150));} else{
            echo '<div class="nothumbnail"></div>';
         }
      echo'</div>';
         echo '<a class="title-sm" href="',the_permalink(),'">',the_title(),'</a>
         </div>';
      endwhile;
      wp_reset_query();
      ?>
</div>

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

Обратите внимание на это кусок:

echo'<div class="read_else_thumb">';
if ( has_post_thumbnail() ) {the_post_thumbnail(array(150, 150));} else{
            echo '<div class="nothumbnail"></div>';
         }
      echo'</div>';

Здесь выводится миниатюра записи с размером 150 на 150, но если ее нет, то выводится блок «nothumbnail» в файлах стиля пропишите путь к картинке.

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

Вот и все, что хотел рассказать.

Спасибо за внимание.


Читайте также:

Приглашаем поучаствовать в обсуждении статьи:

Комментариев 0