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