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