Вывести популярные записи можно с помощью виджета, но мы не ищем легких путей )
В нашем случае нам надо его вставить в какое-то особое место или делать выборку по определенной группе.
Шаг первый считаем считаем показы.
Для этого добавим две функции в functions.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
function shapeSpace_popular_posts($post_id) { $count_key = 'popular_posts'; $count = get_post_meta($post_id, $count_key, true); if ($count == '') { $count = 0; delete_post_meta($post_id, $count_key); add_post_meta($post_id, $count_key, '0'); } else { $count++; update_post_meta($post_id, $count_key, $count); } } function shapeSpace_track_posts($post_id) { if (!is_single()) return; if (empty($post_id)) { global $post; $post_id = $post->ID; } shapeSpace_popular_posts($post_id); } add_action('wp_head', 'shapeSpace_track_posts'); |
Первая функция проверяет и устанавливает количество показов, а вторая встраивается в wp_head и запускает первую при загрузке поста.
Шаг второй — вывод популярных постов.
Вставляем код в нужный нам файл, например sidebar.php и настраиваем по желанию.
1 2 3 4 5 6 7 |
<h3>Популярные записи</h3> <ul> <?php $popular = new WP_Query(array('posts_per_page'=>7, 'meta_key'=>'popular_posts', 'orderby'=>'meta_value_num', 'order'=>'DESC')); while ($popular->have_posts()) : $popular->the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_postdata(); ?> </ul> |
Будут вопросы пишите