Фильтры WordPress. Плагин NS Recent Comments.

Фильтры Wordpress
Может быть в будущем сделаю плагин на основе следующего скрипта, а сейчас просто хочу посоветовать, как в Wordpress почти не зная программирования на PHP можно легко создать скрипт (плагином в полной мере его назвать нельзя, скорее это фильтр) автозамены символов в тексте.
С чего начать?
Для начала нужно уяснить, что нам нужно. А нам нужно, например, для того, чтобы 4 пробела заменялись на 4 дабы показать отступ. Опять же в тэге <code> мы вставляем кокой-либо листинг и естественно с отступами, чтобы показать вложенность. Эти отступы формируются табами (кнопка [TAB]). Вот и нужно опять же этот TAB заменить на неразрывные пробелы.
Как работает фильтр
Фильтр в Wordpress работает используя функцию add_filter($param1, $param2), где первый параметр функции говорит к какому содержимому применить фильтр (hook), а второй – через какую функцию пропустить это содержимое. Оба параметра – строчные значения. От первого параметра так же зависит будет ли применяться фильтр перед отправкой данных в базу или перед выводом на экран.
Пример
function correct_code($ret)
{
$ret = str_replace("[-SPACE-][-SPACE-][-SPACE-][-SPACE-]", " ", $ret);
$ret = str_replace("[-TAB-]", " ", $ret);
return($ret);
}
add_filter("the_content", "correct_code");
В примере функция add_filter(), пропускает контент через функцию correct_code(). Причём функция correct_code() получает содержимое в качестве параметра функции, у меня это переменная $ret. А дальше с этой переменной можно делать всё что угодно. В данном случае у меня даны две строки отличающиеся друг от друга тем, что первая заменяет 4 пробела на 4 неразрывных пробела, а вторая заменяет [TAB] на 4 неразрывных пробела. Никакого специального кода для поска [TAB] вводить не нужно, просто поставьте этот [TAB].
Используя эту же функцию, можно добавить автозамену, например, кавычек:
$ret = str_replace("”", """, $ret);
$ret = str_replace("“", """, $ret);
Эти две строчки заменяют кавычки вида “ и ” на обычные "
Примечание:
Иногда по-невнимательности бывает такая проблема, что фильтр не работает и не заменяет кавычки вида “ ” на ". Это может быть, если вы напрямую скопировали символ наклонной кавычки в исходник поста. Тогда, если вы не хотите редактировать пост, нужно скопировать этот символ в автозамену:
$ret = str_replace("“", """, $ret);
$ret = str_replace("”", """, $ret);
И куда её деть?
Куда деть наш код, чтоб работал? Можно кинуть в любой плагин, можно создать отдельный плагин (только незабудьте написать заголовок и активировать этот плагин), а можно кинуть в один из шаблонных файлов, но до вывода контента. Лучше всего куда-нибудь в header.php
Подробнее о фильтрах. [Google перевод]
P.S.
Добавил в проекты новый плагин для Wordpress, который называется NS Recent Comments. Принцип работы почти такой же как и у плагина NS Recent Posts, только на этот раз плагин выводит список последних комментариев, поэтому особо я о нём ничего писать не буду, всю подробную информацию читайте на странице плагина. Рабочий вариант можно увидеть на главной странице журнала внизу.





]]>Максим]]>Псевдокод: http://maxsite.org/ras04
»]]>Никита]]>Он самый ))
»]]>sowich]]>Очень достойно все объяснено, спасибо за информацию.
»