Отслеживаем количество просмотров записей, страниц без плагинов

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Сниппет автоматически отслеживает просмотры записей, страниц и произвольных типов записей. Можно использовать функцию get_post_views с дополнительным параметром $post_id для получения количества просмотров каждой записи, страницы и т.д. Также можно добавить колонку “Просмотры” в административную панель для каждого типа записей.

Использование

Вставляем функцию в нужный файл темы:

echo get_post_views(get_the_ID());

Сниппет

add_filter("wp_head", "wpds_increament_post_view");
function get_post_views($post_id=NULL){
    global $post;
    if($post_id==NULL)
        $post_id = $post->ID;
    if(!empty($post_id)){
        $views_key = 'wpds_post_views';
        $views = get_post_meta($post_id, $views_key, true);
        if(empty($views) || !is_numeric($views)){
            delete_post_meta($post_id, $views_key);
            add_post_meta($post_id, $views_key, '0');
            return "0 просмотров";
        }
        else if($views == 1)
            return "1 просмотр";
        return $views.' просмотров';
    }
}
function wpds_increament_post_view() {
    global $post;
    
    if(is_singular()){
        $views_key = 'wpds_post_views';
        $views = get_post_meta($post->ID, $views_key, true);
        if(empty($views) || !is_numeric($views)){
            delete_post_meta($post->ID, $views_key);
            add_post_meta($post->ID, $views_key, '1');
        }else
            update_post_meta($post->ID, $views_key, ++$views);
    }
}

Добавляем колонку Просмотры в админку

Для добавления колонки Просмотры в раздел Все записи административной панели сайта используем следующий код:

add_filter('manage_posts_columns', 'posts_column_views');
add_action('manage_posts_custom_column', 'posts_custom_column_views',5,2);
function posts_column_views($defaults){
    $defaults['post_views'] = __('Просмотры');
    return $defaults;
}
function posts_custom_column_views($column_name, $id){
    if($column_name === 'post_views')
        echo get_post_views(get_the_ID());
}

Произвольные типы записей

Очень похоже на предыдущий, но для произвольных типов записей нужно просто добавить действие и фильтр для вашего типа. Например, вот так будет выглядеть код для типа записи “portfolio”:

add_filter('manage_portfolio_posts_columns', 'posts_column_views');
add_action('manage_portfolio_posts_custom_column', 'posts_custom_column_views',5,2);

Страницы

Страницы в WordPress не являются произвольным типом записей, поэтому требуют другого вызова:

add_filter('manage_pages_columns', 'posts_column_views');
add_action('manage_pages_custom_column', 'posts_custom_column_views',5,2);

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

Источник: WPDevSnippets

VN:F [1.9.22_1171]

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии