<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Seleckis.lv :: журнал Никиты Селецкого &#187; Wordpress plugins</title>
	<atom:link href="http://seleckis.lv/category/journal/wordpress-plugins/feed" rel="self" type="application/rss+xml" />
	<link>http://seleckis.lv</link>
	<description></description>
	<lastBuildDate>Tue, 08 Feb 2011 13:52:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Фильтры WordPress. Плагин NS Recent Comments.</title>
		<link>http://seleckis.lv/journal/wordpress/filtry-wordpress-plagin-ns-recent-comments</link>
		<comments>http://seleckis.lv/journal/wordpress/filtry-wordpress-plagin-ns-recent-comments#comments</comments>
		<pubDate>Wed, 08 Aug 2007 09:47:05 +0000</pubDate>
		<dc:creator>Никита</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Wordpress plugins]]></category>

		<guid isPermaLink="false">http://www.seleckis.lv/journal/wordpress/filtry-wordpress-plagin-ns-recent-comments</guid>
		<description><![CDATA[
Фильтры Wordpress
Может быть в будущем сделаю плагин на основе следующего скрипта, а сейчас просто хочу посоветовать, как в Wordpress почти не зная программирования на PHP можно легко создать скрипт (плагином в полной мере его назвать нельзя, скорее это фильтр) автозамены символов в тексте.
С чего начать?
Для начала нужно уяснить, что нам нужно. А нам нужно, например, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img src='http://www.seleckis.lv/wp-content/uploads/2007/08/4_wp-filters.png' alt='4_wp-filters.png' /></p>
<h3>Фильтры Wordpress</a></h3>
<p>Может быть в будущем сделаю плагин на основе следующего скрипта, а сейчас просто хочу посоветовать, как в Wordpress почти не зная программирования на PHP можно легко создать скрипт (плагином в полной мере его назвать нельзя, скорее это фильтр) автозамены символов в тексте.</p>
<h4>С чего начать?</h4>
<p>Для начала нужно уяснить, что нам нужно. А нам нужно, например, для того, чтобы 4 пробела заменялись на 4 &amp;nbsp; дабы показать отступ. Опять же в тэге &lt;code&gt; мы вставляем кокой-либо листинг и естественно с отступами, чтобы показать вложенность. Эти отступы формируются табами (кнопка [TAB]). Вот и нужно опять же этот TAB заменить на неразрывные пробелы.</p>
<h4>Как работает фильтр</h4>
<p>Фильтр в Wordpress работает используя функцию add_filter($param1, $param2), где первый параметр функции говорит к какому содержимому применить фильтр (hook), а второй &#8211; через какую функцию пропустить это содержимое. Оба параметра &#8211; строчные значения. От первого параметра так же зависит будет ли применяться фильтр перед отправкой данных в базу или перед выводом на экран.</p>
<h4>Пример</h4>
<p><code><br />
<strong>function</strong> correct_code(<strong>$ret</strong>)<br />
{<br />
	<strong>$ret</strong> = str_replace("[-SPACE-][-SPACE-][-SPACE-][-SPACE-]", "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;", <strong>$ret</strong>);<br />
	<strong>$ret</strong> = str_replace("[-TAB-]", "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;", <strong>$ret</strong>);<br />
	return($ret);<br />
}<br />
<strong>add_filter</strong>("the_content", "correct_code");<br />
</code><br />
В примере функция <strong><em>add_filter()</em></strong>, пропускает контент через функцию <em><strong>correct_code()</strong></em>. Причём функция <strong><em>correct_code()</em></strong> получает содержимое в качестве параметра функции, у меня это переменная <strong>$ret</strong>. А дальше с этой переменной можно делать всё что угодно. В данном случае у меня даны две строки отличающиеся друг от друга тем, что первая заменяет 4 пробела на 4 неразрывных пробела, а вторая заменяет [TAB] на 4 неразрывных пробела. Никакого специального кода для поска [TAB] вводить не нужно, просто поставьте этот [TAB].</p>
<p>Используя эту же функцию, можно добавить автозамену, например, кавычек:</p>
<p><code><br />
	$ret = str_replace("&amp;#8221;", "&amp;quot;", $ret);<br />
	$ret = str_replace("&amp;#8220;", "&amp;quot;", $ret);<br />
</code><br />
Эти две строчки заменяют кавычки вида “ и ” на обычные &quot;<br />
<span class="note"><br />
<strong>Примечание:</strong><br />
Иногда по-невнимательности бывает такая проблема, что фильтр не работает и не заменяет кавычки вида “ ” на &quot;. Это может быть, если вы напрямую скопировали символ наклонной кавычки в исходник поста. Тогда, если вы не хотите редактировать пост, нужно скопировать этот символ в автозамену:</p>
<p><code><br />
	$ret = str_replace("“", "&amp;quot;", $ret);<br />
	$ret = str_replace("”", "&amp;quot;", $ret);<br />
</code><br />
</span></p>
<h4>И куда её деть?</h4>
<p>Куда деть наш код, чтоб работал? Можно кинуть в любой плагин, можно создать отдельный плагин (только незабудьте написать заголовок и активировать этот плагин), а можно кинуть в один из шаблонных файлов, но до вывода контента. Лучше всего куда-нибудь в header.php</p>
<p><a href="http://codex.wordpress.org/Function_Reference/add_filter" target="_blank">Подробнее о фильтрах</a>. [<a target="_blank" href="http://translate.google.com/translate?hl=ru&#038;sl=en&#038;u=http://codex.wordpress.org/Function_Reference/add_filter&#038;sa=X&#038;oi=translate&#038;resnum=1&#038;ct=result&#038;prev=/search%3Fq%3Dhttp://codex.wordpress.org/Function_Reference/add_filter%26hl%3Dru%26client%3Dfirefox-a%26rls%3Dorg.mozilla:en-US:official%26hs%3DQ8h">Google перевод</a>]</p>
<h4>P.S.</h4>
<p>Добавил в проекты новый плагин для Wordpress, который называется <a href="http://www.seleckis.lv/projects/wp-plugins/ns_recent-comments" target="_blank">NS Recent Comments</a>. Принцип работы почти такой же как и у плагина <a href="http://www.seleckis.lv/projects/wp-plugins/ns_recent-posts" target="_blank">NS Recent Posts</a>, только на этот раз плагин выводит список последних комментариев, поэтому особо я о нём ничего писать не буду, всю подробную информацию читайте на странице плагина. Рабочий вариант можно увидеть на главной странице журнала внизу.</p>
]]></content:encoded>
			<wfw:commentRss>http://seleckis.lv/journal/wordpress/filtry-wordpress-plagin-ns-recent-comments/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

