Счетчик просмотров статьи на WordPress без плагина
Решить задачу вывода количества просмотров статей можно решить двумя способами: с помощью плагина и вмешательством в код вашей темы. Сегодня предлагаю решить поставленную задачу с помощью вмешательства в код. Все манипуляции займут порядка минуты.
В результате на вашем сайте в выбранном месте отобразится цифра просмотренных раз данной статьи.
Открываем functions.php (лежит в шаблоне вашего сайта) и добавляем следующий код:
function getPostViews($postID){
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
return "0 просмотров";
}
return $count.' просмотров';
}
function setPostViews($postID) {
$count_key = 'post_views_count';
$count = get_post_meta($postID, $count_key, true);
if($count==''){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
}else{
$count++;
update_post_meta($postID, $count_key, $count);
}
}
Здесь представлены две функции: одна фиксирует просмотры, вторая выводит количество этих просмотров.
Теперь осталось эти функции прописать в нужном вам месте.
Фиксирующую функцию прописываем там, где будете считать просмотры: single.php, page.php, index.php и прочее:
А теперь нужно вывести количество просмотров. Опять же ставим следующий код в том месте, где хотите видеть результат:
Помимо этого вы можете смотреть количество просмотров прямо в админке вашего сайта. Для этого нужно в functions.php добавить следующее:
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 getPostViews(get_the_ID());
}
}
В результате появится дополнительная колонка, с количеством просмотров вашего поста.
Все работает и проверено на этом блоге.