4erepaha13
Полезный
- Регистрация
- 20 Июн 2009
- Сообщения
- 157
- Реакции
- 18
- Автор темы
- #1
Позаимствовал часть кода у буржуйского плагина подсчитывающего количество слов в посте и переделал его функционал в подсчет количества символов:
Но где-то запряталась заковыка - иногда считает адекватно, иногда выводит на большие посты что в них 10-50 знаков.
Где собака порылась?
PHP:
<?php
/*
Plugin Name: Posts Character Count
Description: Отображает количество знаков без пробелов для каждой записи в перечне записей, а также в Панели редактирования записи.
*/
if (function_exists('load_plugin_textdomain'))
load_plugin_textdomain('posts-character-count-admin', PLUGINDIR.'/'.dirname(plugin_basename(__FILE__)).'/languages', dirname(plugin_basename(__FILE__)).'/languages');
//Filters and Functions for column in the Manage Posts SubPanel
add_filter('manage_posts_columns', 'pcca_count_characters');
function pcca_count_characters($defaults) {
$defaults['count'] = __('Количество знаков', 'posts-character-count-admin');
return $defaults;
}
add_action('manage_posts_custom_column', 'pcca_count_custom_column', 10, 2);
function pcca_count_custom_column($column, $post_id)
{
global $post;
if($column == 'count') {
$pcca_char_count = strip_tags($post->post_content);
$pcca_char_count_wsp = str_replace(" ", "", $pcca_char_count);
echo strlen(utf8_decode($pcca_char_count_wsp)).' '. __(' знаков', 'posts-character-count-admin');
}
}
//Class, Function and Action for Display Characters Count in the Edit Posts SubPanel
class CharactersCountPcca {
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));
$count = strlen(str_replace(" ", "", utf8_decode($this->text)));
$this->characters = $count;
return($count);
}
}
function pcca_characters_count_admin_footer() {
global $wpdb;
global $post;
if ($post->post_content != '') {
$stat = new CharactersCountPcca;
$stat->set_text($post->post_content);
$template = '';
$template = '<span class="inside">'. __('Количество знаков:', 'posts-character-count-admin').' %d '. __(' (без пробелов)', 'posts-character-count-admin').'</span> ';
$pluginHTML = sprintf($template,
$stat->get_characters() );
printf('<script language="javascript" type="text/javascript">
var div = document.getElementById("post-status-info");
if (div != undefined) {
div.innerHTML = div.innerHTML + \'%s\';
}
</script>', str_replace("'", "\'", $pluginHTML)
);
}
}

Где собака порылась?