Как подсчитать количество символов в посте

Как подсчитать количество символов в посте | n-wp.ru Настройки
Код, внедряющий в блог подсчет символов в посте. Количество символов отображается как в редакторе, так и в списке постов.

Для многих блоггеров стало актуальным количество символов в посте — многие стремятся поддерживать его на уровне 1000-1500, чтобы угодить поисковым системам, которые неохотно индексируют посты меньшего объема. По-умолчанию в WordPress в редакторе отображается только количество слов, но так как длина слова — понятие растяжимое, то определить реальный объем введенного текста, ориентируясь на слова, затруднительно. Давайте внедрим функцию, которая будет подсчитывать именно количество символов в посте.

Как подсчитать количество символов в посте

Для этого нужно открыть файл functions.php и добавить в него следующий код:

if (function_exists('load_plugin_textdomain'))
load_plugin_textdomain('posts-character-count-admin', PLUGINDIR.'/'.dirname(plugin_basename(__FILE__)).'/languages', dirname(plugin_basename(__FILE__)).'/languages');

add_filter('manage_posts_columns', 'pcodea_count_characters');

function pcodea_count_characters($defaults) {
    $defaults['count'] = __('Подсчет символов', 'posts-character-count-admin');
    return $defaults;
}

add_action('manage_posts_custom_column', 'pcodea_count_custom_column', 10, 2);

function pcodea_count_custom_column($column, $post_id)
{
	global $post;
	if($column == 'count') {
		$pcodea_char_count = strip_tags($post->post_content);
		echo strlen(utf8_decode($pcodea_char_count)).' '. __(' знаков', 'posts-character-count-admin');
	}
}

class CharactersCountPcodea {
	var $text;
	var $characters;
	
	function set_text($text) {
		$this->text = strip_tags($text);		
		$this->characters = -1;
	}
	
	function get_text() {
		return($this->text);
	}
	
	function get_characters() {
		if ($this->text == '') { return(0); }		
		if ($this->characters != -1) { return($this->characters); }
		
		$count = strlen(utf8_decode($this->text));
		
		$this->characters = $count;
		return($count);
	}
}

function pcodea_characters_count_admin_footer() {
	global $wpdb;
	global $post;

	if ($post->post_content != '') {
		$stat = new CharactersCountPcodea;
		$stat->set_text($post->post_content);
		$template = '';
		$template = '<span class="inside">'. __('  Знаков с пробелами:', 'posts-character-count-admin').' %d</span> ';
		$pluginHTML = sprintf($template,
				$stat->get_characters()				);
		printf('
				var div = document.getElementById("wp-word-count");
				if (div != undefined) {
					div.innerHTML = div.innerHTML + '%s';
				}
				', str_replace("'", "'", $pluginHTML)
			);
	}
}

add_action('admin_footer', 'pcodea_characters_count_admin_footer');

Этот код подсчитывает количество символов посте (следует учитывать, что пробел тоже является символом, и входит в подсчет). Количество символов отображается не только в редакторе рядом с количеством слов, но и в общем списке постов.

Как подсчитать количество символов в посте

Единственным неудобством является то, что подсчет символов происходит после сохранения поста (то есть для того, чтобы увидеть реальное количество символов в посте, нужно его сохранить). Впрочем, если у вас настроено автосохранение через определенный интервал времени, то вы будете в курсе, сколько уже написали.

Если же вы не хотите внедрять приведенный код в используемую тему, а хотите действовать более глобально, то можете использовать плагин Posts Character Count Admin, имеющий аналогичный результат работы.

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

  1. Константин

    Здравствуйте! А сталкивались ли вы с задачей, как вывести без плагина количество символов не в админке, а на сайте. Причем не в области основного контента, а в сайтбар например?

    Ответить