+7 (911) 913-40---
menu
person
[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Отслеживаем количество просмотров записей
artnovДата: Понедельник, 21.07.2014, 21:48 | Сообщение # 1
Начальник сайта
Группа: Администраторы
Сообщений: 151
Награды: 0
Репутация: 0
Статус: Offline
Отслеживаем количество просмотров записей, страниц без плагинов

Сниппет автоматически отслеживает просмотры записей, страниц и
произвольных типов записей. Можно использовать функцию 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


Artnov
 
  • Страница 1 из 1
  • 1
Поиск: