Отслеживаем количество просмотров записей, страниц без плагинов
Сниппет автоматически отслеживает просмотры записей, страниц и
произвольных типов записей. Можно использовать функцию get_post_views с
дополнительным параметром $post_id для получения количества просмотров каждой записи, страницы и т.д. Также можно добавить колонку
“Просмотры” в административную панель для каждого типа записей.
Использование
Вставляем функцию в нужный файл темы:
Код
echo get_post_views(get_the_ID());
Сниппет
Код
1 add_filter("wp_head", "wpds_increament_post_view");
2 function get_post_views($post_id=NULL){
3 global $post;
4 if($post_id==NULL)
5 $post_id = $post->ID;
6 if(!empty($post_id)){
7 $views_key = 'wpds_post_views';
8 $views = get_post_meta($post_id, $views_key, true);
9 if(empty($views) || !is_numeric($views)){
10 delete_post_meta($post_id, $views_key);
11 add_post_meta($post_id, $views_key, '0');
12 return "0 просмотров";
13 }
14 else if($views == 1)
15 return "1 просмотр";
16 return $views.' просмотров';
17 }
18 }
19 function wpds_increament_post_view() {
20 global $post;
21
22 if(is_singular()){
23 $views_key = 'wpds_post_views';
24 $views = get_post_meta($post->ID, $views_key, true);
25 if(empty($views) || !is_numeric($views)){
26 delete_post_meta($post->ID, $views_key);
27 add_post_meta($post->ID, $views_key, '1');
28 }else
29 update_post_meta($post->ID, $views_key, ++$views);
30 }
31 }
Добавляем колонку Просмотры в админку
Для добавления колонки Просмотры в раздел Все записи административной панели сайта используем следующий код:
Код
1add_filter('manage_posts_columns', 'posts_column_views');
2add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
3function posts_column_views($defaults){
4 $defaults['post_views'] = __('Просмотры');
5 return $defaults;
6}
7function posts_custom_column_views($column_name, $id){
8 if($column_name === 'post_views')
9 echo get_post_views(get_the_ID());
10}
Произвольные типы записей
Очень похоже на предыдущий, но для произвольных типов записей нужно просто добавить действие и фильтр для вашего типа. Например, вот так
будет выглядеть код для типа записи “portfolio”:
Код
1add_filter('manage_portfolio_posts_columns', 'posts_column_views');
2add_action('manage_portfolio_posts_custom_column', 'posts_custom_column_views',5,2);
Страницы
Страницы в WordPress не являются произвольным типом записей, поэтому требуют другого вызова:
Код
1add_filter('manage_pages_columns', 'posts_column_views');
2add_action('manage_pages_custom_column', 'posts_custom_column_views',5,2);
Источник: WPDevSnippets