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

Приветствую Вас дорогие посетители блога www.advdk.com!

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

Как могут навредить плагины нашему блогу:

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

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

На написание этой статьи меня подтолкнул вопрос моего читателя (не однократного победителя в конкурсе — «победа в конкурсе«). Александр спросил меня об этих настройках, то есть он спросил меня – с помощью какого плагина я вывожу самые популярные статьи в sidebar.php, а я ответил, что плагинами стараюсь не пользоваться, Вы уже знаете почему? Ну,  ответ напишу в статье «популярные статьи WordPress», то есть далее…

Как Вы, наверное, знаете, я время от времени хожу по блогам и смотрю что блоггеры делают для своих читателей. Они пытаются задействовать как можно больше различных настроек, то есть делают удобный и полезный функционал сайта. Блоггеры делают на своих web-ресурсах вывод комментаторов (кстати смотрите в footere победителей в конкурсе), выводят самые популярные статьи и последние записи.

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

Некоторые из этих функций, можно выполнить при помощи виджетов Вашей темы WordPress блога. У Вас все еще нет блога на WordPress? Тогда читайте «как создать блог на движке WordPress» Популярные посты, вывести при помощи виджетов пока нельзя, может быть в будущем разработчики что-то придумают и решат данную проблему, а пока такая удобная опция выводится с помощью специального плагина [urlspan]WP-PostViews[/urlspan], довольно таки функциональный, но сильно грузит сервер, поэтому мы избавимся от этих плагинов, используя специальный код.

С начало хотел написать об одном способе, но потом вспомнил, что если на блоге установлены плагины Quick-cashe или W3 Total Cache, то данный код (вывод популярных статей) работать не будет, а так как многие их используют, решил написать о другом 100% способе, который использую сам. Да кстати, эти страшные плагины, которые заменяют функционал блога, предназначенные для кэширования файлов, можно легко заменить, внеся некоторые дополнения в правильный файл .htaccess. Вот правда не знаю, как эти дополнения будут работать у Вас, ведь у меня [urlspan]хостинг[/urlspan] (что такое хостинг) кэшируют все мои файлы блога. Ну да ладно, что-то я отошел от темы популярных статей.

КАК ВЫВЕСТИ ПОПУЛЯРНЫЕ СТАТЬИ WORDPRESS БЛОГА

  • Первое – мы ставим код, который будет подсчитывать сколько раз просмотрели нашу статью
  • Второе – выведем счетчик, который будет показывать просмотры
  • Третье – сделаем вывод популярных статей в сайдбаре
  • Четвертое – добавим в админ панель блога функцию — количество просмотренных статей

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

/*Сколько раз просмотрели посты*/
add_action('wp','es_pageviews');
add_action('manage_posts_custom_column','display_pageviews_row',10,2);
add_filter('manage_pages_columns', 'display_pageviews');
add_filter('manage_posts_columns', 'display_pageviews');
function es_pageviews(){
if(is_single() || is_page()){
global $post;
$pv = get_post_meta($post->ID, '_pageviews',true);
update_post_meta($post->ID, '_pageviews', $pv+1);
}
}
function display_pageviews($columns){
$columns['pv'] = __('PageViews');
return $columns;
}
function display_pageviews_row($column_name,$post_id){
if ($column_name != 'pv') return;
$pv = get_post_meta($post_id, '_pageviews',true);
echo $pv ? $pv : 0;
}
function the_pageview(){
global $post;
$pv = get_post_meta($post->ID, '_pageviews',true);
echo $pv ? $pv : 0;
}
function mytheme_comment($comment, $args, $depth)
{
$GLOBALS['comment'] = $comment;
switch ( $comment->comment_type ) :
case '' :
?>
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
<div id="comment-<?php comment_ID(); ?>" class="<?php if ( get_comment_author_email() == get_the_author_email() ) echo adm_; else echo $oddcomment; ?>comment-body">
<div class="comment-author vcard">
<?php edit_comment_link( __( 'Редактировать' ), ' ' ); ?>
<?php echo get_avatar( $comment->comment_author_email, $args['avatar_size']); ?>
<?php printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author_link()) ?>
</div>

<div class="comment-meta commentmetadata">
<a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?></a>
</div>

<?php if ($comment->comment_approved == '0') : ?>
<div class="comment-awaiting-verification"><?php _e('Your comment is awaiting moderation.') ?></div>
<br />
<?php endif; ?>
<?php comment_text() ?>
<div class="reply">
<?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
</div>
</div>

<?php
break;
case 'pingback' :
case 'trackback' :
?>
<li class="post pingback">
<?php comment_author_link(); ?>
<?php edit_comment_link( __( 'Редактировать' ), ' ' ); ?>
<?php
break;
endswitch;
}


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

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

Счетчик популярных статей

Теперь открываем файл single.php, если кто не знает этот файл отвечает за записи блога. Теперь вставим туда такой код:

<?php if(function_exists('PostViews')) { echo PostViews(get_the_ID()); }?>

Вставляйте данный код, именно в то место, где хотите видеть этот счетчик.

Выводим популярные статьи WordPress в сайдбаре с миниатюрами

Популярные статьи в сайдбаре

Сделаем похожее — вывод последних записей как у меня в сайдбраре, с миниатюрами, и чтобы они при наведении мышки меняли положение.

Разместил популярные записи

Как вывести популярные статьи с миниатюрами

Чтобы это сделать у себя на блоге, нужно ввести следующий код в файл sidebar.php, Вашего блога:

<!-- Популярные записи -->
<ul> <li><h2 style="text-align: center";>Самые популярные записи</h2></li></ul>
<div class="popular">
<ul>
<?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(); ?>" target="_blank"><?php the_post_thumbnail(array()); ?></a>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" target="_blank"><?php the_title(); ?></a>
</li>
<?php endwhile; ?>
</ul>
</div>
<!--/ Популярные записи -->


Самые популярные записи будут выводиться в зависимости от комментирования Ваших постов.  В файл стилей CSS добавьте такие стили:

.popular ul li{
line-height:16px;

display:block;

border-bottom:1px solid #ECECEC;

padding:15px 0px 20px 0px;

height:50px;

font-size:12px;

}

.popular ul li img {

width: 55px;

height: 55px;

padding: 2px;

float: left;

margin: 0 13px 0 0px;

background: #FFFFFF;

border: 1px solid #D0D0BB;

border-radius: 5px;

box-shadow: 0 0 5px #666666;

}

.popular li img:hover {

border: 1px solid #ffffff;

padding: 2px;

margin: 0 5px 0 4px;

}


Не знаю, как называется у Вас этот файл, лично у меня style.css, у Вас неверное тоже!

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

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

КАК ВЫВЕСТИ ТОЧНОЕ КОЛИЧЕСТВО ПРОСМОТРЕННЫХ СТАТЕЙ В АДМИН-ПАНЕЛИ

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

Самые пулярные записи блога

Надо добавить в functions.php следующий код:

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);

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

С уважением, Алексей Кобзарев

20 комментариев

Ваш комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *