Как подсчитать количество символов в посте
Для многих блоггеров стало актуальным количество символов в посте – многие стремятся поддерживать его на уровне 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, имеющий аналогичный результат работы.









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