Артём Мáлков

Добавляем количество просмотров записи в WordPress

13 окт2 комм

По умолчанию, в CMS WordPress отсутствует возможность подсчета просмотров записей. Это можно исправить через какой-нибудь плагин, но я же рекомендую исключить этот вариант и сделать все через готовую функцию, которая приведена ниже.

1. Подключитесь к вашему сайту по FTP, в папке вашей темы найдите файл 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);
		
	}
	
}


// Показ количества просмотров в панели управления

function posts_column_views($defaults) {

	$defaults["post_views"] = __("Просмотры");

	return $defaults;
	
}

add_filter("manage_posts_columns", "posts_column_views");


function posts_custom_column_views($column_name, $id) {

	if($column_name === "post_views") {
	
		echo getPostViews(get_the_ID());
		
	}
	
}

add_action("manage_posts_custom_column", "posts_custom_column_views", 5, 2);

Сохраните изменения и отправьте файл обратно на сайт.

С помощью этого кода мы внедряем возможность подсчета количества просмотров записи + отображение этого числа в панели управления вашим сайтом.

Если вы хотите исключить отображение количества просмотров в панели управления, то удалите следующий код:

// Показ количества просмотров в панели управления

function posts_column_views($defaults) {

	$defaults["post_views"] = __("Просмотры");
	
	return $defaults;
	
}

add_filter("manage_posts_columns", "posts_column_views");


function posts_custom_column_views($column_name, $id) {

	if($column_name === "post_views") {
	
		echo getPostViews(get_the_ID());
		
	}
	
}

add_action("manage_posts_custom_column", "posts_custom_column_views", 5, 2);

2. Помимо выше описанного кода, в полную версию вашей записи (чаще всего это файл single.php в папке вашей темы), сразу после вызова цикла:

<?php

	if(have_posts()) : while (have_posts()) : the_post();

?>

вставьте:

<?php

	setPostViews(get_the_ID());

?>

На этом подсчет количества просмотров окончательно завершен.

Если вы хотите вывести количество просмотров записи на страницу, чтобы пользователи так же могли наблюдать за популярностью той или иной статьи, в нужное место этого же файла вставьте:

<?php

	echo "Просмотров: ".getPostViews(get_the_ID());

?>

Стиль оформления и названия вы можете изменить на свои, главное – не нарушьте код вызова счетчика просмотров.

Рекомендуем к просмотру
Как получить ID просматриваемой страницы или записи в WordPress на PHP?
Статьи и советы
Как вывести количество записей (постов) в рубрике (категории) в меню в WordPress?
Посты
Способы подсчета и вывода количества записей в рубрике на WordPress
Статьи и советы
2
комментария
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    1067
      •  Команда Pandoge
    16 апр в 14:11

    Mika, я думаю, что можно. Нужно смотреть как устроена база от плагина.

    • 1
    8
      •  Проверенный
    16 апр в 07:52

    У меня плагин был yuzo - его взломали и внедрили вирус через него. Снес... Но он просмотры в базе хранил.

    Можно ли как-то восстановить былое кол-во просмотров, связав с этим кодом данные из его базы?

Подняться наверх
«Pandoge» - помощник вебмастера