<?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>Блог Артёма Савельева &#187; уроки</title>
	<atom:link href="http://seogad.ru/tags/uroki/feed" rel="self" type="application/rss+xml" />
	<link>http://seogad.ru</link>
	<description>Бизнес, интернет, путешествия, творчество</description>
	<lastBuildDate>Fri, 03 Feb 2012 15:54:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Анонимные комментарии в Wordpress а-ля blogger.com</title>
		<link>http://seogad.ru/cms/wp-blogger-commments</link>
		<comments>http://seogad.ru/cms/wp-blogger-commments#comments</comments>
		<pubDate>Tue, 15 Jun 2010 21:31:41 +0000</pubDate>
		<dc:creator>Артём Савельев</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[комментарии]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://seogad.ru/?p=2512</guid>
		<description><![CDATA[Недавно я работал над одним интересным сайтом на Wordpress, хозяин которого попросил сделать достаточно оригинальную штуку: анонимные комментаторы должны иметь возможность ввести только текст комментария, а имя и адрес сайта доступны лишь зарегистрированным пользователям. Начал было рассказывать о своей беде товарищу в скайпе, но вдруг понял, что всё не так сложно, как почудилось. На самом [...]

<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/comment-modification" rel="bookmark">Украшаем комментарии в Wordpress</a><!-- (12.4)--></li>
		<li><a href="http://seogad.ru/cms/thememylogin" rel="bookmark">Подключение темы Wordpress к страницам профиля, регистрации и авторизации</a><!-- (8.9)--></li>
		<li><a href="http://seogad.ru/cms/magicfields-photosite" rel="bookmark">Создание фотосайта на Wordpress с помощью плагина Magic Fields</a><!-- (7)--></li>
	</ul></div>
]]></description>
			<content:encoded><![CDATA[<p>Недавно я работал над одним интересным сайтом на Wordpress, хозяин которого попросил сделать достаточно оригинальную штуку: анонимные комментаторы должны иметь возможность ввести только текст комментария, а имя и адрес сайта доступны лишь зарегистрированным пользователям.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/anonymous-comments-main.jpg" alt="Делаем очень анонимные комментарии на Wordpress" title="Очень анонимные комментарии в Wordpress (а-ля blogger.com)" width="470" height="312" class="aligncenter size-full wp-image-2531" /></p>
<p>Начал было рассказывать о своей беде товарищу в скайпе, но вдруг понял, что всё не так сложно, как почудилось.<span id="more-2512"></span></p>
<p>На самом деле достаточно сделать всего пару изменений в одном из файлов шаблона. Откроем <em>comments.php</em> и найдём примерно следующее (примерно, потому что в разных темах по-разному, мой вариант взят из темы Classic):</p>
<p><code>&lt;br /&gt;<br />
&lt;input type="text" name="author" id="author" value="&lt;?php echo esc_attr($comment_author); ?&gt;" size="22" tabindex="1" /&gt;&lt;br /&gt;<br />
&lt;label for="author"&gt;&lt;small&gt;&lt;?php _e('Name'); ?&gt; &lt;?php if ($req) _e('(required)'); ?&gt;&lt;/small&gt;&lt;/label&gt;&lt;/p&gt;<br />
&lt;p&gt;</code></p>
<p>Удалим отсюда теги <strong>label</strong> и всё, что между ними, уберём оба тега <strong>p</strong>, значение <strong>value</strong> заменим на <em><strong>Анонимный комментарий</strong></em>, а значение <strong>type</strong>&nbsp;&mdash; на <em><strong>hidden</strong></em>.</p>
<p>В результате получим следующий код:</p>
<p><code>&lt;br /&gt;<br />
&lt;input type="hidden" name="author" id="author" value="Анонимный комментарий" size="22" tabindex="1" /&gt;</code></p>
<p>Сделаем похожие изменения в поле для ввода <strong>E-mail</strong>, заменим</p>
<p><code>&lt;br /&gt;<br />
&lt;input type="text" name="email" id="email" value="&lt;?php echo esc_attr($comment_author_email); ?&gt;" size="22" tabindex="2" /&gt;&lt;br /&gt;<br />
&lt;label for="email"&gt;&lt;small&gt;&lt;?php _e('Mail (will not be published)');?&gt; &lt;?php if ($req) _e('(required)'); ?&gt;&lt;/small&gt;&lt;/label&gt;&lt;/p&gt;<br />
&lt;p&gt;</code></p>
<p>на этот код:</p>
<p><code>&lt;br /&gt;<br />
&lt;input type="hidden" name="email" id="email" value="noreplay@site.com" size="22" tabindex="2" /&gt;</code></p>
<p>Поле для ввода <strong>адреса сайта</strong> можем смело удалить, вот каким оно было:</p>
<p><code>&lt;br /&gt;<br />
&lt;input type="text" name="url" id="url" value="&lt;?php echo esc_attr($comment_author_url); ?&gt;" size="22" tabindex="3" /&gt;&lt;br /&gt;<br />
&lt;label for="url"&gt;&lt;small&gt;&lt;?php _e('Website'); ?&gt;&lt;/small&gt;&lt;/label&gt;&lt;/p&gt;<br />
&lt;p&gt;</code></p>
<p>Проверяем результат.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/anonymous-comments.jpg" alt="Анонимные комментарии в Wordpress по типу blogger.com" title="Анонимные комментарии в Wordpress" width="470" height="260" class="aligncenter size-full wp-image-2518" /></p>
<p>Вот такое нехитрое решение оригинальной проблемы. </p>
<p>Для того, чтобы задизайнить в стиле сайта страницы регистрации, авторизации, настройки профиля и напоминания пароля, я использовал плагин <a href="http://wordpress.org/extend/plugins/theme-my-login/">Theme my Login</a>, о котором писал в уроке &laquo;<a href="http://seogad.ru/cms/thememylogin">Подключение темы Wordpress к страницам профиля, регистрации и авторизации</a>&raquo; (с тех пор настройки плагина немножко поменялись, имейте в виду).</p>
<p>Желаю вам всего самого оригинального.<br />
<a href="http://seogad.ru">Артём Савельев</a></p>
<p><em>P.S. Скоро подходит к концу мой марафон. Будем отчитываться =)</em></p>


<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/comment-modification" rel="bookmark">Украшаем комментарии в Wordpress</a><!-- (12.4)--></li>
		<li><a href="http://seogad.ru/cms/thememylogin" rel="bookmark">Подключение темы Wordpress к страницам профиля, регистрации и авторизации</a><!-- (8.9)--></li>
		<li><a href="http://seogad.ru/cms/magicfields-photosite" rel="bookmark">Создание фотосайта на Wordpress с помощью плагина Magic Fields</a><!-- (7)--></li>
	</ul></div>
]]></content:encoded>
			<wfw:commentRss>http://seogad.ru/cms/wp-blogger-commments/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Использование 3D в Photoshop CS5</title>
		<link>http://seogad.ru/photoshop/3d-cs5</link>
		<comments>http://seogad.ru/photoshop/3d-cs5#comments</comments>
		<pubDate>Fri, 11 Jun 2010 22:38:34 +0000</pubDate>
		<dc:creator>Артём Савельев</dc:creator>
				<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://seogad.ru/?p=2420</guid>
		<description><![CDATA[Бегал по французскому интернету, и наткнулся на очень симпатичный урок по Photoshop, который захотелось перевести и опубликовать на блоге. Для того, чтобы повторить всё это дело, вам понадобится Photoshop CS5. Итак, откроем Photoshop и в нём создадим документ размером 1900&#215;1200 пикселей, с разрешением 72 пикс./дюйм и цветовым режимом RGB. Теперь нужно создать слой-заливку Градиент, для [...]]]></description>
			<content:encoded><![CDATA[<p>Бегал по французскому интернету, и наткнулся на очень симпатичный <a href="http://www.tutsps.com/index.php?post/2010/06/05/La-3D-avec-Photoshop-Cs5">урок по Photoshop</a>, который захотелось перевести и опубликовать на блоге. </p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/36.jpg" alt="" title="36" width="470" height="296" class="aligncenter size-full wp-image-2422" /></p>
<p>Для того, чтобы повторить всё это дело, вам понадобится Photoshop CS5.<span id="more-2420"></span></p>
<p>Итак, откроем Photoshop и в нём создадим документ размером <strong>1900&times;1200 пикселей,</strong> с разрешением <strong>72 пикс./дюйм</strong> и цветовым режимом <strong>RGB.</strong></p>
<p>Теперь нужно создать слой-заливку Градиент, для этого пройдём в <em>Меню → Слои → Новый слой-заливка → Градиент</em>.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/11.jpg" alt="Photoshop CS5 - создание слоя-заливки &quot;Градиент&quot;" title="Создаём слой-заливку Градиент в Photoshop CS5" width="368" height="183" class="aligncenter size-full wp-image-2429" /></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/2.jpg" alt="Photoshop CS5 - градиентная заливка" title="Создание градиента в Photoshop CS5" width="432" height="106" class="aligncenter size-full wp-image-2431" /></p>
<p>У нас должно получиться следующее.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/3.jpg" alt="Photoshop CS5 пример градиента" title="Градиент в Photoshop CS5" width="470" height="296" class="aligncenter size-full wp-image-2433" /></p>
<p>Напишите ваш текст так, чтобы каждая буква находилась в отдельном текстовом слое, как показано на картинке.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/4.jpg" alt="Photodhop CS5 - каждая буква в отдельном текстовом слое" title="Текстовые слои в Photoshop CS5" width="470" height="295" class="aligncenter size-full wp-image-2435" /></p>
<p>Теперь мы применим к нашим буквам эффект 3D, выберите первую букву и пройдите в <em>Меню → 3D → Чеканка  → Текстовый слой</em>.</p>
<p>В нашем примере мы всего лишь добавим немного объёмности нашему тексту и наложим одну из имеющихся текстур (первую в списке).</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/5.jpg" alt="Photoshop CS5 - создание эффекта 3D у текстового слоя" title="Применение эффекта 3D в Photoshop CS5" width="470" height="412" class="aligncenter size-full wp-image-2437" /></p>
<p>Не нажимая OK, схватите курсором подопытную букву и поверните её так, как вам захочется.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/6.jpg" alt="Photoshop CS5 - поворот буквы 3D" title="Поворот 3D буквы в Photoshop CS5" width="287" height="220" class="aligncenter size-full wp-image-2439" /></p>
<p>Можно также использовать для этого навигатор в левом верхнем углу документа.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/7.jpg" alt="Photoshop CS5 - управление объектом 3D" title="Навигатор 3D в Photoshop CS5" width="199" height="192" class="aligncenter size-full wp-image-2441" /></p>
<p>Нажмём OK и проделаем то же самое с оставшимися буквами.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/8.jpg" alt="Photoshop CS5 - результат применения эффекта 3D к тексту" title="Результат применения эффекта 3D к текстовому слою в Photoshop CS5" width="470" height="295" class="aligncenter size-full wp-image-2444" /></p>
<p>Теперь <strong>объедините текстовые слои</strong> <em>(Ctrl+E)</em> и к новоиспечённому слою примените следующие <strong>параметры наложения</strong> <em>(правой кнопкой на слое, в списке выбрать соответствующий пункт)</em>.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/9.jpg" alt="Photoshop CS5 - наложение тени на слой" title="Наложение тени в Photoshop CS5" width="445" height="428" class="aligncenter size-full wp-image-2446" /></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/10.jpg" alt="Photoshop CS5 - наложение внутренней тени на слой" title="Наложение внутренней тени в Photoshop CS5" width="445" height="428" class="aligncenter size-full wp-image-2448" /></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/111.jpg" alt="Photoshop CS5 - эффект внешнего свечения" title="Внешнее свечение в Photoshop CS5" width="445" height="429" class="aligncenter size-full wp-image-2450" /></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/12.jpg" alt="Photoshop CS5 - наложение глянца на слой" title="Глянец в Photoshop CS5" width="445" height="252" class="aligncenter size-full wp-image-2452" /></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/13.jpg" alt="Photoshop CS5 - перекрытие слоя цветом" title="Наложение цвета на слой в Photoshop CS5" width="445" height="151" class="aligncenter size-full wp-image-2453" /></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/14.jpg" alt="Photoshop CS5 - наложение градиента на слой" title="Наложение градиента в Photoshop CS5" width="445" height="254" class="aligncenter size-full wp-image-2454" /></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/15.jpg" alt="Photoshop CS5 - наложение узора на слой" title="Наложение узора в Photoshop CS5" width="470" height="443" class="aligncenter size-full wp-image-2457" /></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/16.jpg" alt="Photoshop CS5 - выбор узора для наложения на слой" title="Наложение узора на слой в Photoshop CS5" width="445" height="240" class="aligncenter size-full wp-image-2458" /></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/17.jpg" alt="Photoshop CS5 - обрамление слоя обводкой" title="Обводка в Photoshop CS5" width="445" height="215" class="aligncenter size-full wp-image-2460" /></p>
<p>Вот что у нас получилось.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/18.jpg" alt="Photoshop CS5 - результат настройки параметров наложения слоя" title="Результат изменения параметров наложения в Photoshop CS5" width="470" height="296" class="aligncenter size-full wp-image-2462" /></p>
<p>Теперь скачаем <a href="http://seogad.ru/wp-content/uploads/2010/06/3D_v_photoshop_CS5.zip">этот архив</a> с кистями и текстурами и, выделив слой с текстом, перейдём в <em>Меню → Слои → Слой-маска → Показать все</em>.</p>
<p>Выберем созданный слой-маску и <strong>инструмент «Кисть»</strong> <em>(B)</em>, установим <strong>чёрный цвет</strong> и загрузим кисти из скачанного архива.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/19.jpg" alt="Photoshop CS5 - подгружаем кисти для рисования" title="Загружаем кисти в Photoshop CS5" width="470" height="397" class="aligncenter size-full wp-image-2466" /></p>
<p>Теперь можно поиздеваться над нашим текстом.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/20.jpg" alt="Photoshop CS5 - издевательство над 3D текстом, результат" title="Результат издевательства над 3D текстом в Photoshop CS5" width="470" height="296" class="aligncenter size-full wp-image-2467" /></p>
<p><strong>Создадим новый слой</strong> <em>(Ctrl+Shift+N)</em> и заполним его чёрным, используя <strong>инструмент «Заливка»</strong> <em>(G)</em>, затем пройдём в <em>Меню → Фильтр → Рендеринг → Блик</em> и сделаем всё так, как показано на картинке.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/21.jpg" alt="Photoshop CS5 - добавление блика к слою" title="Добавление блика в Photoshop CS5" width="341" height="354" class="aligncenter size-full wp-image-2469" /></p>
<p>Немножко подкорректируем слой, перейдя в <em>Меню → Изображение → Коррекция → Цветовой фон/насыщенность (Ctrl+U)</em>.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/22.jpg" alt="Photoshop CS5 - Коррекция цвета и насыщенности слоя" title="Коррекция слоя в Photoshop CS5" width="443" height="334" class="aligncenter size-full wp-image-2470" /></p>
<p>Изменим <strong>режим наложения</strong> слоя на <strong>&laquo;Жёсткий свет&raquo;</strong></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/23.jpg" alt="Photoshop CS5 - изменение режима наложения слоя" title="Изменение режима наложения слоя на &quot;Жёсткий свет&quot; в Photoshop CS5" width="346" height="280" class="aligncenter size-full wp-image-2471" /></p>
<p>и получим следующий результат.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/24.jpg" alt="Photoshop CS5 - результат изменения наложения слоя на &quot;Жёсткий свет&quot;" title="Результат изменения режима наложения слоя" width="470" height="297" class="aligncenter size-full wp-image-2472" /></p>
<p>Теперь <strong>создадим новый слой</strong> и нарисуем облака, используя <strong>инструмент «Кисть»</strong> <em>(B)</em> и облачные кисти, которые мы скачали с архивом. Цвет сделайте <strong>белым.</strong></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/25.jpg" alt="Photoshop CS5 - добавление облаков с помощью инструмента &quot;Кисть&quot;" title="Рисование облаков с помощью кисти в Photoshop CS5" width="470" height="297" class="aligncenter size-full wp-image-2474" /></p>
<p>Добавьте <strong>новый слой-заливку</strong> <em>(Меню → Слои → Новый слой-заливка → Градиент)</em> с режимом наложения <strong>«Мягкий свет».</strong></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/26.jpg" alt="Photoshop CS5 - Новый слой-заливка" title="Слой-заливка в Photoshop CS5" width="368" height="183" class="aligncenter size-full wp-image-2479" /></p>
<p>Результат будет примерно следующим (примерно, потому что я выбрал стиль заливки &laquo;Линейный&raquo;, так не делайте).</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/27.jpg" alt="Photoshop CS5 - результат добавления слоя заливки в режиме &quot;Мягкий свет&quot;" title="Результат добавления слоя-заливки в Photoshop CS5" width="470" height="297" class="aligncenter size-full wp-image-2481" /></p>
<p>Добавим <strong>новый корректирующий слой «Карта градиента»,</strong> перейдя в <em>Меню → Слои → Новый корректирующий слой → Карта градиента</em>.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/28.jpg" alt="Photoshop CS5 - добавление карты градиента" title="Карта градиента в Photoshop CS5" width="254" height="360" class="aligncenter size-full wp-image-2484" /></p>
<p>Изменим <strong>режим наложения</strong> слоя на <strong>&laquo;Мягкий свет&raquo;</strong></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/29.jpg" alt="Photoshop CS5 - изменение режима наложения слоя на Мягкий свет" title="Изменение режима наложения слоя на Мягкий свет" width="347" height="155" class="aligncenter size-full wp-image-2486" /></p>
<p>и посмотрим, что у нас получилось (я немного подвинул солнышко, с первого раза не попал, куда хотел).</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/30.jpg" alt="Промежуточный результат" title="Промежуточный результат" width="470" height="296" class="aligncenter size-full wp-image-2488" /></p>
<p>Теперь <strong>импортируйте</strong> в ваш документ текстуру <em>Grunge_texture_by_darkrose42_stock.jpg </em></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/31.jpg" alt="Текстура Grunge для урока по использованию 3D в Photoshop CS5" title="Текстура Grunge" width="470" height="297" class="aligncenter size-full wp-image-2492" /></p>
<p>и измените <strong>режим наложения</strong> слоя на <strong>«Мягкий свет».</strong></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/32.jpg" alt="Photoshop CS5 - изменение режима наложения слоя на &quot;Мягкий свет&quot;" title="Изменяем режим наложения слоя в Photoshop CS5" width="347" height="128" class="aligncenter size-full wp-image-2494" /></p>
<p>Полюбуемся промежуточным результатом</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/33.jpg" alt="3D текст в Photoshop CS5 после наложения текстуры" title="Результат наложения текстуры" width="470" height="296" class="aligncenter size-full wp-image-2496" /></p>
<p>и, <strong>создав новый слой,</strong> пройдём в <em>Меню → Фильтр → Рендеринг → Облака.</em></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/341.jpg" alt="Photoshop CS5 - применение фильтра &quot;Облака&quot;" title="Рендеринг &quot;Облака&quot; в Photoshop CS5" width="470" height="296" class="aligncenter size-full wp-image-2503" /></p>
<p>Изменим <strong>режим наложения</strong> на <strong>&laquo;Мягкий свет&raquo;</strong> и установим <strong>прозрачность 69%.</strong></p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/35.jpg" alt="Photoshop CS5 - меняем режим наложения на Мягкий свет и прозрачность на 69%" title="Изменение режима наложения и прозрачности в Photoshop CS5" width="347" height="128" class="aligncenter size-full wp-image-2500" /></p>
<p> Теперь, наконец-то, можем позволить себе насладиться итоговым результатом.</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/06/361.jpg" alt="Photoshop CS5 - 3D-текст, результат урока" title="Результат урока по использованию 3D в Photoshop CS5" width="470" height="296" class="aligncenter size-full wp-image-2501" /></p>
<p>Поблагодарим автора урока &laquo;<a href="http://www.tutsps.com/index.php?post/2010/06/05/La-3D-avec-Photoshop-Cs5">La 3D avec Photoshop Cs5</a>&raquo;.</p>
<p>Желаю вам всего самого доброго.<br />
<a href="http://seogad.ru">Артём Савельев</a></p>
<p><em>P.S. Недавно меня пригласили принять участие в одной потенциально симпатичой рассылке «<a href="http://subscribe.ru/catalog/comp.personal.blogging">Блоггинг для чайников: сам себе продвиженец</a>». Возможно, в каких-нибудь выпусках вы увидите и мои комментарии. Желаю рассылке светлого будущего.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://seogad.ru/photoshop/3d-cs5/feed</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Создаём каталог организаций на Wordpress без использования плагинов</title>
		<link>http://seogad.ru/cms/catalog-wordpress</link>
		<comments>http://seogad.ru/cms/catalog-wordpress#comments</comments>
		<pubDate>Mon, 29 Mar 2010 15:35:49 +0000</pubDate>
		<dc:creator>Артём Савельев</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[60000/мес. за 100 дней]]></category>
		<category><![CDATA[каталог]]></category>
		<category><![CDATA[марафон]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://seogad.ru/?p=1802</guid>
		<description><![CDATA[Пока я выпиливаю свои шаблоны, хотелось бы поделиться с вами какой-нибудь полезностью. Например, в ходе марафона я выучился создавать на Wordpress разнообразные каталоги, в том числе и каталог организаций, без использования плагинов. Для этого я использую третью ветку Wordpress, функции таксономии и дополнительные типы записей. Весь процесс я буду показывать на тестовом сайте, предназначенном для [...]

<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/wordpress-photosite" rel="bookmark">Создание фотосайта на Wordpress без использования плагинов</a><!-- (14.1)--></li>
		<li><a href="http://seogad.ru/cms/60000-themes" rel="bookmark">Марафон продолжается: создаём качественные и функциональные шаблоны для Wordpress</a><!-- (11.4)--></li>
		<li><a href="http://seogad.ru/cms/custom-permalinks-in-custom-post-types" rel="bookmark">Изменение структуры ЧПУ в дополнительном типе записей Wordpress</a><!-- (9.4)--></li>
	</ul></div>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/03/marafon-catalog.jpg" alt="Создание каталога организаций на Wordpress 3.0  без плагинов" title="Создаём каталог организаций на Wordpress без использования плагинов" width="470" height="312" class="alignnone size-full wp-image-1870" /></p>
<p>Пока я выпиливаю свои шаблоны, хотелось бы поделиться с вами какой-нибудь полезностью. Например, в ходе марафона я выучился создавать на Wordpress разнообразные каталоги, в том числе и каталог организаций, без использования плагинов.<span id="more-1802"></span></p>
<p>Для этого я  использую третью ветку Wordpress, функции <strong>таксономии</strong> и дополнительные <strong>типы записей</strong>. Весь процесс я буду показывать на <a href="http://wp3.wptest.ru/">тестовом сайте</a>, предназначенном для тестирования возможностей Wordpress 3.</p>
<p>Чтобы осуществить задуманное, нам понадобиться открыть файл <em>functions.php</em> используемой темы и вставить перед последним закрывающим тегом <em>?&gt;</em> всё, что мы сейчас напридумываем.</p>
<h3>Типы записей и дополнительные рубрики</h3>
<p>Положим начало функции, которая будет содержать новый тип записей и его собственные рубрики:</p>
<p><code>function post_type_myfirms() {</code></p>
<p>При желании, замените <em>myfirms</em> на что-нибудь своё. </p>
<p>В эту функцию добавим новый тип записей:</p>
<p><code>&lt;br /&gt;<br />
register_post_type('firms',&lt;br /&gt;<br />
array(&lt;br /&gt;<br />
'label' =&gt; __('Организации'),&lt;br /&gt;<br />
'public' =&gt; true,&lt;br /&gt;<br />
'show_ui' =&gt; true,&lt;br /&gt;<br />
'publicly_queryable' =&gt; true,&lt;br /&gt;<br />
'supports' =&gt; array(&lt;br /&gt;<br />
'title',&lt;br /&gt;<br />
'editor',&lt;br /&gt;<br />
'post-thumbnails',&lt;br /&gt;<br />
'excerpts',&lt;br /&gt;<br />
'custom-fields',&lt;br /&gt;<br />
'revisions'&lt;br /&gt;<br />
)&lt;br /&gt;<br />
)&lt;br /&gt;<br />
);</code></p>
<p>Мы указали лишь некоторые параметры, объясню их вместе с теми, которые мы не здесь затронули.</p>
<ul>
<li><strong>label</strong> – описание типа записей, можно указывать на своём языке;</li>
<li><strong>public</strong> – отображать ли этот тип записи в админке, по умолчанию указано значение <em>false</em>;</li>
<li><strong>exclude_from_search</strong> – исключать ли посты этого типа из поиска, по умолчанию <em>false</em>, если параметр <em>public</em> имеет значение <em>true</em>;</li>
<li><strong>publicly_queryable</strong> – позволять ли отображать посты этого типа на главной странице;</li>
<li><strong>show_ui</strong> – отображать ли стандартный интерфейс для редактирования записей этого типа, по умолчанию <em>true</em>, если параметр <em>public</em> имеет значение <em>true</em>;</li>
<li><strong>inherit_type</strong> – тип записи для наследования возможностей и ссылки на редактирование;</li>
<li><strong>capability_type</strong> – тип записи, по примеру которого следует подключить возможности чтения, редактирования и удаления записей, по умолчанию это «post»;</li>
<li><strong>edit_cap</strong> – управляет редактированием записей данного типа, по умолчанию «edit_$capability_type» (edit_post);</li>
<li><strong>edit_type_cap</strong> – управляет редактированием записей данного типа как класса, по умолчанию «edit_ . $capability_type . s» (edit_posts);</li>
<li><strong>edit_others_cap</strong> – управляет редактированием записей данного типа, созданных другими пользователями, по умолчанию «edit_others_ . $capability_type . s» (edit_others_posts);</li>
<li><strong>edit_others_cap</strong> – управляет публикацией записей данного типа, по умолчанию «publish_ . $capability_type . s» (publish_posts);</li>
<li><strong>read_cap</strong> – управляет чтением записей данного типа, по умолчанию «read_$capability_type» (read_post);</li>
<li><strong>delete_cap</strong> – управляет удалением записей данного типа, по умолчанию «delete_$capability_type» (delete_post);</li>
<li><strong>hierarchical</strong> – включает возможность иерархии постов, по умолчанию установлено значение <em>false</em>;</li>
<li><strong>supports</strong> – подключение элементов записи к странице редактирования, возможны следующие варианты:</li>
<ul>
<li>title&nbsp;&mdash; заголовок записи;</li>
<li>editor (content)&nbsp;&mdash; содержание;</li>
<li>author&nbsp;&mdash; автор записи;</li>
<li>thumbnail&nbsp;&mdash; миниатюра;</li>
<li>excerpts&nbsp;&mdash; краткий анонс;</li>
<li>trackbacks&nbsp;&mdash; уведомления об обратных ссылках;</li>
<li>custom-fields&nbsp;&mdash; дополнительные поля;</li>
<li>comments&nbsp;&mdash; комментарии;</li>
<li>revisions&nbsp;&mdash; ревизии;</li>
</ul>
<li><strong>register_meta_box_cb</strong> – функция, вызываемая при установке полей записи. Используйте remove_meta_box () и add_meta_box () внутри этой функции;</li>
<li><strong>taxonomies</strong> –  список дополнительных рубрик, зарегистрированных для данного типа записей, по умолчанию не используется, можно добавить поддержку отдельно с помощью функции register_taxonomy () или register_taxonomy_for_object_type ().</li>
</ul>
<p>Более подробно обо всё об этом <a href="http://codex.wordpress.org/Function_Reference/register_post_type" rel="nofollow">здесь</a> (по-английски).</p>
<p>Теперь подключим таксономию (дополнительные рубрики и метки). Для этого после того кода, который мы уже вставили, зарегистрируем категории:</p>
<p><code>register_taxonomy( 'firmcat', 'firms', array( 'hierarchical' =&gt; true, 'label' =&gt; __('Категории') ) );</code></p>
<p>и после зарегистрируем города (в формате меток):</p>
<p><code>register_taxonomy( 'city', 'firms',&lt;br /&gt;<br />
array(&lt;br /&gt;<br />
'hierarchical' =&gt; false,&lt;br /&gt;<br />
'label' =&gt; __('Города'),&lt;br /&gt;<br />
'query_var' =&gt; 'city',&lt;br /&gt;<br />
'rewrite' =&gt; array('slug' =&gt; 'city' )&lt;br /&gt;<br />
)&lt;br /&gt;<br />
);</code></p>
<p>Подробнее читайте по-английски <a href="http://codex.wordpress.org/Function_Reference/register_taxonomy" rel="nofollow">здесь</a>.</p>
<p>Закроем функцию:</p>
<p><code>}</code></p>
<p>и активируем всё, что мы насочиняли:</p>
<p><code>add_action('init', 'post_type_myfirms');</code></p>
<p>Если ранее вы заменили <em>myfirms</em> на что-нибудь другое, сделайте это и здесь.</p>
<h3>Шаблоны для каталога</h3>
<p>Чтобы отделить наши записи от остальных материалов блога, нам понадобиться создать для них собственные шаблоны. Начнём со страницы, содержащей список рубрик, для этого откроем файл <em>page.php</em> и после:</p>
<p><code>&lt;?php the_content(); ?&gt;</code></p>
<p>добавим:</p>
<p><code>&lt;?php if (is_page('firms')) { ?&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;strong&gt;Рубрики&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;?php wp_tag_cloud( array( 'taxonomy'=&gt;'firmcat' , 'number'=&gt;'0' ) ); ?&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;strong&gt;Города&lt;/strong&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;?php wp_tag_cloud( array( 'taxonomy'=&gt;'city' , 'number'=&gt;'0' ) ); ?&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;?php }; ?&gt;</code></p>
<p>Тем самым мы отобразим списки рубрик и городов в формате облака меток. Подробнее читайте в описании функции <a href="http://codex.wordpress.org/Template_Tags/wp_tag_cloud" rel="nofollow">wp_tag_cloud</a>.</p>
<p>Теперь создадим новую страницу с <em>постоянной ссылкой</em> &laquo;firms&raquo;.</p>
<p>Добавим пару тестовых организаций, для этого перейдём в <em>Организации → Добавить новую</em>. Там же создадим пару категорий и добавим города.</p>
<p>Смотрим, <a href="http://wp3.wptest.ru/firms/" rel="nofollow">что у нас получилось</a>:</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/03/catalog1.jpg" alt="Рубрики каталога организаций на Wordpress" title="Каталог организаций на Wordpress" width="470" height="190" class="alignnone size-full wp-image-1849" /></p>
<p>Теперь создадим шаблон для категорий и городов. Начнём с последнего, для этого откроем любой предусмотренный в теме файл категории или просто <em>index.php</em> и сохраним его как <em>taxonomy-city.php</em>.</p>
<p>В созданном файле добавим отображение рубрики, в котором располагается организация, перед:</p>
<p><code>&lt;?php the_content() ?&gt;</code></p>
<p>вставим:</p>
<p><code>&lt;?php echo get_the_term_list( $post-&gt;ID, 'firmcat', '<br />
&lt;p&gt;Рубрика: ', ', ', '&lt;/p&gt;<br />
&lt;p&gt;' ); ?&gt;</code></p>
<p>а чтобы добавить заголовок страницы с названием города, после:</p>
<p><code>&lt;?php if (have_posts()) : ?&gt;</code></p>
<p>вставим:</p>
<p><code>&lt;br /&gt;<br />
&lt;h2&gt;Организации в городе "&lt;?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); echo $term-&gt;name; ?&gt;"&lt;/h2&gt;<br />
&lt;p&gt;</code></p>
<p>Теперь сохраним этот файл как <em>taxonomy-firmcat.php</em> и заменим код для отображения рубрики на отображение города:</p>
<p><code>&lt;?php echo get_the_term_list( $post-&gt;ID, 'city', '<br />
&lt;p&gt;Город: ', ', ', '&lt;/p&gt;<br />
&lt;p&gt;' ); ?&gt;</code></p>
<p>а код заголовка заменим, например, на следующий:</p>
<p><code>&lt;br /&gt;<br />
&lt;h2&gt;&lt;?php $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); echo $term-&gt;name; ?&gt;&lt;/h2&gt;<br />
&lt;p&gt;</code></p>
<p>Создадим также шаблон для одиночной записи. Для этого сохраним файл <em>single.php</em> как <em>single-firms.php</em> и добавим в нём перед:</p>
<p><code>&lt;?php the_content(); ?&gt;</code></p>
<p>как рубрику:</p>
<p><code>&lt;?php echo get_the_term_list( $post-&gt;ID, 'firmcat', '<br />
&lt;p&gt;Рубрика: ', ', ', '&lt;/p&gt;<br />
&lt;p&gt;' ); ?&gt;</code></p>
<p>так и город:</p>
<p><code>&lt;?php echo get_the_term_list( $post-&gt;ID, 'city', '<br />
&lt;p&gt;Город: ', ', ', '&lt;/p&gt;<br />
&lt;p&gt;' ); ?&gt;</code></p>
<p>Проверяем <a href="http://wp3.wptest.ru/firms/upravlenie-zags-administracii-g-lipecka/">результат</a>:</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/03/catalog2.jpg" alt="Одиночная запись каталога организаций на Wordpress" title="Каталог организаций на Wordpress - одиночная записи" width="470" height="152" class="alignnone size-full wp-image-1857" /></p>
<h3>Виджет</h3>
<p>В принципе, каталог у нас готов, но я бы ещё добавил один симпатичный виджет со списком всех категорий и городов. Снова откроем файл <em>functions.php</em> и перед последним закрывающим тегом <em>?></em> добавим:</p>
<p><code>function firmcats() {&lt;br /&gt;<br />
?&gt;&lt;/p&gt;<br />
&lt;li&gt;<br />
&lt;h3&gt;Организации&lt;/h3&gt;<br />
&lt;p&gt;&lt;strong&gt;Рубрики:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul&gt;<br />
&lt;?php wp_tag_cloud( array( 'taxonomy'=&gt;'firmcat' , 'smallest'  =&gt; 12,&lt;br /&gt;<br />
    'largest'   =&gt; 12,&lt;br /&gt;<br />
    'unit'      =&gt; 'px', 'format'=&gt;'list' ) ); ?&gt;<br />
&lt;/ul&gt;<br />
&lt;p&gt;&lt;strong&gt;Города:&lt;/strong&gt;&lt;/p&gt;<br />
&lt;ul&gt;<br />
&lt;?php wp_tag_cloud( array( 'taxonomy'=&gt;'city' , 'smallest'  =&gt; 12,&lt;br /&gt;<br />
    'largest'   =&gt; 12,&lt;br /&gt;<br />
    'unit'      =&gt; 'px', 'format'=&gt;'list' ) ); ?&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;p&gt;&lt;?php };&lt;br /&gt;<br />
function register_firm_widget() {&lt;br /&gt;<br />
register_sidebar_widget('Организации', 'firmcats');&lt;br /&gt;<br />
}&lt;br /&gt;<br />
add_action('init', 'register_firm_widget');&lt;br /&gt;</code></p>
<p>Получаем вот такую симпатяшку:</p>
<p><img src="http://seogad.ru/wp-content/uploads/2010/03/catalog3.jpg" alt="Рубрики и города каталога организаций в виджете Wordpress" title="Виджет каталога организаций на Wordpress" width="190" height="122" class="aligncenter size-full wp-image-1863" /></p>
<p>На этом всё. Наш каталог вы можете пощупать на <a href="http://wp3.wptest.ru/firms/" rel="nofollow">тестовом сайте</a>.</p>
<p>Как вы могли догадаться, Wordpress настолько чудесен, что мой сегодняшний урок лишь самая малая часть того, как можно извратиться при создании каталога организаций. </p>
<p>Можно самыми разными способами, в самых разных количествах и качествах отображать информацию, добавленную с помощью дополнительных типов записей и сортировать её с помощью дополнительных рубрик.</p>
<p>Желаю вам всего самого доброго и возвращаюсь к <a href="http://seogad.ru/tools/cms/60000-themes">разработке 40 тем для Wordpress</a> в рамках марафона &laquo;<a href="http://seogad.ru/moneymaking/60000-100days">60000 руб./месяц за 100 дней</a>&raquo;.</p>
<p><a href="http://seogad.ru">Артём Савельев</a>.<br />
<em><br />
P.S. Компания Universe of Web предлагает услуги по увеличению продаж с через Интернет, в том числе <a href="http://uniofweb.ru/">поисковую раскрутку сайтов</a> и контекстную рекламу.</em></p>


<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/wordpress-photosite" rel="bookmark">Создание фотосайта на Wordpress без использования плагинов</a><!-- (14.1)--></li>
		<li><a href="http://seogad.ru/cms/60000-themes" rel="bookmark">Марафон продолжается: создаём качественные и функциональные шаблоны для Wordpress</a><!-- (11.4)--></li>
		<li><a href="http://seogad.ru/cms/custom-permalinks-in-custom-post-types" rel="bookmark">Изменение структуры ЧПУ в дополнительном типе записей Wordpress</a><!-- (9.4)--></li>
	</ul></div>
]]></content:encoded>
			<wfw:commentRss>http://seogad.ru/cms/catalog-wordpress/feed</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>Создание фотосайта на Wordpress без использования плагинов</title>
		<link>http://seogad.ru/cms/wordpress-photosite</link>
		<comments>http://seogad.ru/cms/wordpress-photosite#comments</comments>
		<pubDate>Fri, 26 Feb 2010 18:45:47 +0000</pubDate>
		<dc:creator>Артём Савельев</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[галерея]]></category>
		<category><![CDATA[уроки]]></category>
		<category><![CDATA[фото]]></category>

		<guid isPermaLink="false">http://seogad.ru/?p=1328</guid>
		<description><![CDATA[На днях случилось мне создать сайт на Wordpress, в основе которого фотогалерея с разными симпатяшками. Хотел было взяться за привычные потуги с плагином Magic Fields, примерно как в моём &#171;предыдущем уроке&#187;, но мой коллега вовремя меня одёрнул, указав на то, что Wordpress теперь вполне самостоятельный в плане колдовства с фотографиями. Стал он таким примерно с [...]

<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/catalog-wordpress" rel="bookmark">Создаём каталог организаций на Wordpress без использования плагинов</a><!-- (14.8)--></li>
		<li><a href="http://seogad.ru/cms/magicfields-photosite" rel="bookmark">Создание фотосайта на Wordpress с помощью плагина Magic Fields</a><!-- (14.5)--></li>
		<li><a href="http://seogad.ru/cms/mp3-wordpress-magic-fields-jplayer" rel="bookmark">Создание каталога песен на Wordpress с помощью Magic Fields и jPlayer</a><!-- (8)--></li>
	</ul></div>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/main3.jpg" alt="Создание фотосайта на Wordpress без использования плагинов" title="Создание фотосайта на Wordpress без использования плагинов" width="470" height="313" class="alignnone size-full wp-image-1432" /></p>
<p>На днях случилось мне создать сайт на Wordpress, в основе которого фотогалерея с разными симпатяшками. Хотел было взяться за привычные потуги с плагином Magic Fields, примерно как в моём &laquo;<a href="http://seogad.ru/tools/cms/magicfields-photosite">предыдущем уроке</a>&raquo;, но мой коллега вовремя меня одёрнул, указав на то, что Wordpress теперь вполне самостоятельный в плане колдовства с фотографиями. <span id="more-1328"></span></p>
<p>Стал он таким примерно с версии 2.9.2 (на более ранних не смотрел), но здесь ещё присутствует небольшая неприятность: до создания миниатюры записи необходимо либо сохранить запись, либо после загрузки изображения закрыть окно управления галереей, снова открыть его и только тогда выбрать миниатюру. </p>
<p>Самому может и не сложно было бы производить эти лишние действия, но клиенту такую нагрузку подбрасывать не хотелось. Спасением мне явилась третья ветка Wordpress, официальный выпуск которой ещё не случился, но по крайней мере этой глупости в ней уже нет, и создание фотосайта на Wordpress без использования плагинов становится возможным и приятным развлечением, которым мы сегодня себя и порадуем.</p>
<p>Для сегодняшнего урока я создал <a href="http://wp3.wptest.ru/">тестовый сайт</a> с <a href="http://wordpress.org/nightly-builds/wordpress-latest.zip">наипоследнейшей версией Wordpress</a>, где мы будем упражняться с кодом, и где вы сможете оценить результат наших стараний. Новый шаблон по умолчанию до некоторой степени заумный, и я ещё не успел разобраться с его устройством, поэтому операцию буду проводить на привычном шаблоне Default (отчего и у вас не должно возникнуть трудностей, потому что большинство шаблонов используют похожую структуру).</p>
<p>В последнее время получаю всё больше отзывов, в которых читатели просят делать мои уроки более подробными, чтобы даже &laquo;самые юные&raquo; пользователи Wordpress сумели со всем этим разобраться. По всему по этому буду стараться этим просьбам удовлетворять, и если что-то покажется вам до смеха элементарным&nbsp;&mdash; не серчайте, просто улыбнитесь.</p>
<p>Для начала создадим отдельную рубрику для наших фотографий, для чего пройдём в <em>Записи → Рубрики</em>.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/11.jpg" alt="Создание рубрики в Wordpress 3" title="Создание рубрики в Wordpress 3" width="470" height="636" class="alignnone size-full wp-image-1422" /></p>
<p>Не пугайтесь забавных фраз на англо-русском, это потому что версия Wordpress третья, а языковые файлы от второй. </p>
<p>Также нам нужно настроить размеры миниатюр, которые Wordpress будет любезно создавать для нас из загруженных в него изображений. Откроем страницу <em>Параметры → Медиафайлы</em> и установим нужные нам значения для маленькой, средней и крупной миниатюр. Я поставил 100, 400 и 900 пикселей по ширине и высоте.</p>
<p>Теперь мы можем загружать наши фотографии. Пройдём в <em>Записи → Добавить новую</em>, укажем заголовок, набросаем немного описательного текста для наших картинок, отметим нужную рубрику и приступим к загрузке фотографий.</p>
<p>Можно поступить по-разному: показывать в каждой записи по одной миниатюре или помимо миниатюры отображать ещё и остальные картинки из галереи. Я рассмотрю оба примера, а вы уже сами прицельтесь и сделайте так, как вам будет нужнее.</p>
<p>Для загрузки фотографий, воспользуемся самой первой кнопкой из четырёх находящихся справа от текста &laquo;Загрузить/вставить&raquo;. Если навести на неё курсор, должна появиться надпись &laquo;Добавить изображение&raquo; (или подобная, зависит от используемого перевода). После нажатия откроется симпатичное окошко, в котором мы и будем наслаждаться загрузкой изображений.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/2.jpg" alt="Загрузка изображений в Wordpress 3" title="Загрузка изображений в Wordpress 3" width="470" height="370" class="alignnone size-full wp-image-1355" /></p>
<p>Чтобы добавить заголовки изображений, необходимо справа от изображения кликнуть на слове &laquo;Показать&raquo;, откроется редактор изображения. В нём, справа от кнопки &laquo;Вставить в запись&raquo;, которую в данном случае нажимать не нужно, находится ссылка &laquo;Использовать как миниатюру&raquo;, которую мы и используем, чтобы создать миниатюру для записи.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/3.jpg" alt="Создание миниатюры в Wordpress 3" title="Создание миниатюры в Wordpress 3" width="470" height="190" class="alignnone size-full wp-image-1357" /></p>
<p>Публикуем запись и открываем файл <em>functions.php</em>, который находится в папке используемого шаблона, и в который мы добавим пару нужностей. Если вы, как и я, хотите изменять файлы темы непосредственно через админку Wordpress, перейдите на страницу <em>Внешний вид → Редактор (Editor)</em> и из списка справа выберите необходимый файл.</p>
<p>Приступим к изменениям. Во-первых, если в вашей теме нет фразы &laquo;add_theme_support&raquo; (это можно выяснить поиском по странице: Ctrl+F), это означает что тема не поддерживает миниатюры, что необходимо исправить добавлением следующего кода:</p>
<p><code>if ( function_exists( 'add_theme_support' ) )&lt;br /&gt;<br />
add_theme_support( 'post-thumbnails' );</code></p>
<p>в подходящее место, например перед последним закрывающим тегом:</p>
<p><code>?&gt;</code></p>
<p>Во-вторых, для более удобного управления записями с фотографиями, добавим сразу после нашего кода ещё чуть-чуть писанины:</p>
<p><code>if ( !function_exists('fb_AddThumbColumn') &#038;& function_exists('add_theme_support') ) {&lt;br /&gt;<br />
	// for post and page&lt;br /&gt;<br />
	add_theme_support('post-thumbnails', array( 'post', 'page' ) );&lt;br /&gt;<br />
	function fb_AddThumbColumn($cols) {&lt;br /&gt;<br />
		$cols['thumbnail'] = __('Thumbnail');&lt;br /&gt;<br />
		return $cols;&lt;br /&gt;<br />
	}&lt;br /&gt;<br />
	function fb_AddThumbValue($column_name, $post_id) {&lt;br /&gt;<br />
			$width = (int) 35;&lt;br /&gt;<br />
			$height = (int) 35;&lt;br /&gt;<br />
			if ( 'thumbnail' == $column_name ) {&lt;br /&gt;<br />
				// thumbnail of WP 2.9&lt;br /&gt;<br />
				$thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );&lt;br /&gt;<br />
				// image from gallery&lt;br /&gt;<br />
				$attachments = get_children( array('post_parent' =&gt; $post_id, 'post_type' =&gt; 'attachment', 'post_mime_type' =&gt; 'image') );&lt;br /&gt;<br />
				if ($thumbnail_id)&lt;br /&gt;<br />
					$thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true );&lt;br /&gt;<br />
				elseif ($attachments) {&lt;br /&gt;<br />
					foreach ( $attachments as $attachment_id =&gt; $attachment ) {&lt;br /&gt;<br />
						$thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );&lt;br /&gt;<br />
					}&lt;br /&gt;<br />
				}&lt;br /&gt;<br />
					if ( isset($thumb) &#038;& $thumb ) {&lt;br /&gt;<br />
						echo $thumb;&lt;br /&gt;<br />
					} else {&lt;br /&gt;<br />
						echo __('None');&lt;br /&gt;<br />
					}&lt;br /&gt;<br />
			}&lt;br /&gt;<br />
	}&lt;br /&gt;<br />
	// for posts&lt;br /&gt;<br />
	add_filter( 'manage_posts_columns', 'fb_AddThumbColumn' );&lt;br /&gt;<br />
	add_action( 'manage_posts_custom_column', 'fb_AddThumbValue', 10, 2 );&lt;br /&gt;<br />
	// for pages&lt;br /&gt;<br />
	add_filter( 'manage_pages_columns', 'fb_AddThumbColumn' );&lt;br /&gt;<br />
	add_action( 'manage_pages_custom_column', 'fb_AddThumbValue', 10, 2 );&lt;br /&gt;<br />
}</code></p>
<p>Это снабдит список записей миниатюрой.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/4.jpg" alt="Миниатюра в списке записей в Wordpress" title="Миниатюра в списке записей в Wordpress" width="470" height="204" class="alignnone size-full wp-image-1373" /></p>
<p>На этом махинации с файлом <em>functions.php</em> заканчиваются, и нам остаётся отобразить наши изображения в шаблоне. Начнём с категории фотографий, откроем для редактирования файл <em>archive.php</em> (или <em>index.php</em>, если его нет) и после фразы:</p>
<p><code>the_post();</code></p>
<p>добавим:</p>
<p><code>if (is_category('photos') &#038;& !is_single()) { ?&gt;ЗДЕСЬ БУДЕТ КАРТИНКА&lt;?php } else {</code></p>
<p>и чтобы закрыть условие, перед:</p>
<p><code>endwhile;</code></p>
<p>вставим:</p>
<p><code>}</code></p>
<p>Вместо &laquo;photos&raquo;, вставьте в код ID вашей категории с фотографиями или её slug (альтернативное имя латинскими буквами для адреса страницы). Теперь нам нужно заменить фразу <em>ЗДЕСЬ БУДЕТ КАРТИНКА</em> на код, который будет эту картинку показывать:</p>
<p><code>&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;br /&gt;<br />
&lt;?php the_post_thumbnail('thumbnail'); ?&gt;&lt;/a&gt;</code></p>
<p>Если хотите, можно несколько усложнить себе жизнь и настроить появление среднего изображения при наведении курсора на миниатюру. Для этого, вместо предложенного выше кода необходимо вставить следующий:</p>
<p><code>&lt;a href="&lt;?php the_permalink() ?&gt;"&lt;br /&gt;<br />
class="tooltip" style="z-index:&lt;?php the_ID(); ?&gt;;"&gt;&lt;br /&gt;<br />
&lt;?php the_post_thumbnail('thumbnail'); ?&gt;&lt;br /&gt;<br />
&lt;span&gt;&lt;?php the_post_thumbnail(array(300, 300),&lt;br /&gt;<br />
array('class' =&gt; 'imagetooltip')); ?&gt;&lt;/span&gt;&lt;/a&gt;</code></p>
<p>и чтобы всё было чистенько и красиво, в самом конце файла <em>style.css</em> добавим необходимые стили:</p>
<p><code>.tooltip img {&lt;br /&gt;<br />
	border:4px solid #dddddd;&lt;br /&gt;<br />
	z-index:1000;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
.tooltip {&lt;br /&gt;<br />
	position:relative;&lt;br /&gt;<br />
	margin-right:15px;&lt;br /&gt;<br />
	display:block;&lt;br /&gt;<br />
	float:left;&lt;br /&gt;<br />
	margin-bottom:15px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
.tooltip span {&lt;br /&gt;<br />
  position: absolute;&lt;br /&gt;<br />
  right: 0;&lt;br /&gt;<br />
  top: 95px;&lt;br /&gt;<br />
  display: none;&lt;br /&gt;<br />
  left:95px;&lt;br /&gt;<br />
  min-width: 50px;&lt;br /&gt;<br />
  padding: 0;&lt;br /&gt;<br />
  white-space: nowrap;&lt;br /&gt;<br />
  font-size: 11px;&lt;br /&gt;<br />
  text-align: right;&lt;br /&gt;<br />
  background:none;&lt;br /&gt;<br />
  color: #fff;&lt;br /&gt;<br />
  z-index:9000;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
.tooltip span img {border:0;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
.tooltip span small {&lt;br /&gt;<br />
	display:none;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
.tooltip:hover span { display: block; }</code></p>
<p>В итоге получаем вот такую красотень. Ссылка с картинки ведёт на демо.</p>
<p style="text-align: center;"><a href="http://wp3.wptest.ru/category/photos/"><img src="http://seogad.ru/wp-content/uploads/2010/02/5.jpg" alt="Фотогалерея на Wordpress. Список миниатюр со всплывающим увеличенным изображением" title="Фотогалерея на Wordpress. Список миниатюр со всплывающим увеличенным изображением" width="470" height="206" class="alignnone size-full wp-image-1392" /></a></p>
<p>Займёмся теперь одиночной записью, шаблон которой скрывается в файле <em>single.php</em>. Откроем этот файл и после:</p>
<p><code>the_post();</code></p>
<p>добавим:</p>
<p><code>if (in_category('photos')) { ?&gt;ЗДЕСЬ БУДЕТ КАРТИНКА&lt;?php } else {</code></p>
<p>и закроем условие, добавив:</p>
<p><code>}</code></p>
<p>перед:</p>
<p><code>comments_template();</code></p>
<p>или, если вы не используете в своём шаблоне комментарии, перед:</p>
<p><code>endwhile;</code></p>
<p>Не забываем заменить &laquo;photos&raquo; на slug или ID своей категории. Чтобы наши изображения красиво увеличивались при нажатии, установим плагин <a href="http://wordpress.org/extend/plugins/shutter-reloaded/">Shutter Reloaded</a>, и перейдя на страницу <em>Внешний вид → Shutter Reloaded</em>, активируем второй вариант преобразования ссылок (если это не сделано по умолчанию).</p>
<p>Затем приступим к замене фразы <em>ЗДЕСЬ БУДЕТ КАРТИНКА</em> на что-нибудь более существенное. Ранее я обещал показать два разных варианта отображения картинок в одиночной записи. На тестовом сайте вы можете посмотреть <a href="http://wp3.wptest.ru/photos/toulouse/">оба варианта на одной странице</a>&nbsp;&mdash; используйте подходящий.</p>
<p>Чтобы отобразить среднее изображение, заменим нашу фразу на следующий код:</p>
<p><code>&lt;a rel="lightbox[]" href="&lt;?php $thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id(), 'large');&lt;br /&gt;<br />
echo $thumbnail[0]; ?&gt;" &gt;&lt;?php the_post_thumbnail('medium'); ?&gt;&lt;/a&gt;</code></p>
<p>а если нам нужны все изображения записи, то получить их можно следующим образом (нужно убрать из кода пробел перед <em>gallery</em>):</p>
<p><code>&lt;?php echo do_shortcode('[ gallery columns="6" size="thumbnail" itemtag="ul" icontag="li" captiontag="p" link="file"]'); ?&gt;</code></p>
<p>Объясню некоторые параметры:</p>
<ul>
<li><em>columns</em>&nbsp;&mdash; количество изображений в строке;</li>
<li><em>size</em>&nbsp;&mdash; размер изображения, у нас указана миниатюра, можно выбрать <em>среднее (medium)</em> или <em>большое (large)</em> изображение;</li>
<li><em>link</em>&nbsp;&mdash; куда ведёт ссылка с изображения, в нашем случае откроется оригинальный файл.</li>
</ul>
<p>Подробнее о разных параметрах <a href="http://codex.wordpress.org/Gallery_Shortcode">здесь</a> (осторожно, английский).</p>
<p>Теперь добавим немножко красок в файл <em>style.css</em>, чтобы всё у нас выглядело ровно и красиво. В конце файла вставим:</p>
<p><code>.gallery .gallery-item {&lt;br /&gt;<br />
	width:110px !important;&lt;br /&gt;<br />
	margin:0;&lt;br /&gt;<br />
	padding:0;&lt;br /&gt;<br />
	margin-right:15px !important;&lt;br /&gt;<br />
	margin-bottom:15px !important;&lt;br /&gt;<br />
	list-style:none;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
.gallery .gallery-item li {&lt;br /&gt;<br />
	margin:0 !important;&lt;br /&gt;<br />
	padding:0 !important;&lt;br /&gt;<br />
	list-style:none;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
.gallery .gallery-item li a {&lt;br /&gt;<br />
	border:4px solid #dddddd;&lt;br /&gt;<br />
	display:block !important;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
.gallery .gallery-item li a img {&lt;br /&gt;<br />
	border:0 !important;&lt;br /&gt;<br />
}</code></p>
<p>Смотрим, что у нас получилось, и потихоньку начинаем радоваться.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/6.jpg" alt="Галерея изображений на Wordpress без использования плагинов" title="Галерея изображений на Wordpress без использования плагинов" width="470" height="519" class="alignnone size-full wp-image-1410" /></p>
<p>В принципе, фундамент заложен, галерея уже работает и может вполне пригодиться даже в таком виде, но я хотел бы ещё рассказать вам, как добавить пару полезных виджетов, которые будут отображать случайные и последние фотографии. Вновь откроем файл <em>functions.php</em> и перед закрывающим тегом:</p>
<p><code>?&gt;</code></p>
<p>добавим виджет случайного показа изображений:</p>
<p><code>function randomimages() {  $randomimg = new WP_Query('cat=3&#038;showposts=2&#038;orderby=rand');&lt;br /&gt;<br />
if($randomimg-&gt;have_posts()) : ?&gt;&lt;br /&gt;<br />
&lt;h3&gt;Случайные изображения&lt;/h3&gt;<br />
&lt;p&gt;&lt;?php&lt;br /&gt;<br />
while($randomimg-&gt;have_posts()) :  $randomimg-&gt;the_post(); ?&gt;&lt;br /&gt;<br />
&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;?php the_post_thumbnail(array(60, 60), array('class' =&gt; 'imagetooltip')); ?&gt;&lt;/a&gt;&lt;br /&gt;<br />
&lt;?php endwhile; endif; };</code></p>
<p>ниже добавим виджет для показа последних добавленных изображений:</p>
<p><code>function lastimages() {  $lastimg = new WP_Query('cat=3&#038;showposts=2&#038;orderby=date&#038;order=DESC');&lt;br /&gt;<br />
if($lastimg-&gt;have_posts()) : ?&gt;&lt;br /&gt;<br />
&lt;h3&gt;Новые изображения&lt;/h3&gt;<br />
&lt;p&gt;&lt;?php&lt;br /&gt;<br />
while($lastimg-&gt;have_posts()) :  $lastimg-&gt;the_post(); ?&gt;&lt;br /&gt;<br />
&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;?php the_post_thumbnail(array(60, 60), array('class' =&gt; 'imagetooltip')); ?&gt;&lt;/a&gt;&lt;br /&gt;<br />
&lt;?php endwhile; endif; };</code></p>
<p>и закончим всё это дело регистрацией виджетов:</p>
<p><code>function register_my_widget() {&lt;br /&gt;<br />
register_sidebar_widget('Случайные изображения', 'randomimages');&lt;br /&gt;<br />
register_sidebar_widget('Новые изображения', 'lastimages');&lt;br /&gt;<br />
}&lt;br /&gt;<br />
add_action('init', 'register_my_widget');;</code></p>
<p>Изменения шаблона закончены. Теперь нам останется перейти на страницу <em>Внешний вид → Виджеты</em> и активировать наши новенькие виджеты, перебросив их в один из сайдбаров. Вот что у нас получилось.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/7.jpg" alt="Фотогалерея на Wordpress с виджедами случайных и последних фотографий" title="Фотогалерея на Wordpress с виджедами случайных и последних фотографий" width="470" height="281" class="alignnone size-full wp-image-1416" /></p>
<p>На этом урок окончен. Посмотреть результат в действии можно на <a href="http://wp3.wptest.ru/category/photos/">тестовом сайте</a>. Помните, что всё это только примеры, которые вы можете использовать как вам угодно, изменяя их под себя&nbsp;&mdash; главное не бояться, читать документацию, и не забывать, что Гугл знает ответы на большую часть ваших вопросов, связанных с Wordpress.</p>
<p>Если будет нужна помощь&nbsp;&mdash; оставляйте комментарии, постараемся решить вопрос качественно и оперативно.</p>
<p>Желаю вам всего самого интересного. До новых встреч.<br />
<a href="http://seogad.ru">Артём Савельев</a>.</p>
<p><em>P.S. Юридической фирмой &laquo;Центр правового обслуживания&raquo; предлагается <a href="http://www.pravorf.ru/services/rejderstvo-sposoby-zaschity/">защита от рейдерского захвата</a>&nbsp;&mdash; многолетний профессиональный опыт в этой области.</em></p>


<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/catalog-wordpress" rel="bookmark">Создаём каталог организаций на Wordpress без использования плагинов</a><!-- (14.8)--></li>
		<li><a href="http://seogad.ru/cms/magicfields-photosite" rel="bookmark">Создание фотосайта на Wordpress с помощью плагина Magic Fields</a><!-- (14.5)--></li>
		<li><a href="http://seogad.ru/cms/mp3-wordpress-magic-fields-jplayer" rel="bookmark">Создание каталога песен на Wordpress с помощью Magic Fields и jPlayer</a><!-- (8)--></li>
	</ul></div>
]]></content:encoded>
			<wfw:commentRss>http://seogad.ru/cms/wordpress-photosite/feed</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Создание фотосайта на Wordpress с помощью плагина Magic Fields</title>
		<link>http://seogad.ru/cms/magicfields-photosite</link>
		<comments>http://seogad.ru/cms/magicfields-photosite#comments</comments>
		<pubDate>Tue, 16 Feb 2010 07:52:45 +0000</pubDate>
		<dc:creator>Артём Савельев</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Magic Fields]]></category>
		<category><![CDATA[галерея]]></category>
		<category><![CDATA[уроки]]></category>
		<category><![CDATA[фото]]></category>

		<guid isPermaLink="false">http://seogad.ru/?p=1121</guid>
		<description><![CDATA[Продолжаю серию уроков по использованию замечательного плагина Magic Fields. Сегодня мы подробно рассмотрим создание полноценной фотогалереи или портфолио художника (что-то похожее в своё время я реализовал на сайте Виктора Лукьянова). В установке Wordpress нет ничего сложного (тем не менее когда-нибудь чего-нибудь хотелось бы об этом написать, для самых маленьких), о том, как установить и настроить [...]

<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/mp3-wordpress-magic-fields-jplayer" rel="bookmark">Создание каталога песен на Wordpress с помощью Magic Fields и jPlayer</a><!-- (20.5)--></li>
		<li><a href="http://seogad.ru/cms/magic-fields-wordpress-plugin" rel="bookmark">Плагин Magic Fields&nbsp;&mdash; создание дополнительных полей в Wordpress</a><!-- (15.6)--></li>
		<li><a href="http://seogad.ru/cms/wordpress-photosite" rel="bookmark">Создание фотосайта на Wordpress без использования плагинов</a><!-- (13.6)--></li>
	</ul></div>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/main.jpg" alt="" title="Создание фотогалереи на Wordpress с помощью плагина Magic Fields" width="470" height="313" class="alignnone size-full wp-image-1202" /></p>
<p>Продолжаю серию уроков по использованию замечательного плагина <a href="http://magicfields.org/">Magic Fields</a>. Сегодня мы подробно рассмотрим создание полноценной фотогалереи или портфолио художника (что-то похожее в своё время я реализовал на сайте <a href="http://www.loukianov.ru/">Виктора Лукьянова</a>). <span id="more-1121"></span></p>
<p>В установке Wordpress нет ничего сложного (тем не менее когда-нибудь чего-нибудь хотелось бы об этом написать, для самых маленьких), о том, как установить и настроить плагин Magic Fields я писал во <a href="http://seogad.ru/cms/magic-fields-wordpress-plugin">вступительной статье</a> этой серии.</p>
<p>По традиции, все действия я буду проделывать вместе с вами, результаты можно посмотреть на <a href="http://wptest.ru/">тестовом сайте</a>, предназначенном специально для демонстрации моих уроков.</p>
<p>Для начала нам понадобится зайти в панель администратора и <em>создать новую категорию</em> под рабочим названием &laquo;Фотографии&raquo;. Затем, чтобы создать <em>панель записей</em> пройдём в <em>Magic Fields → Write Panels (Панели записей)</em> и там нажмём на <em>Create a Write Panel (Создать панель записей)</em>.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/create-panel.jpg" alt="" title="Создание дополнительной панели записей на Wordpress с помощью Magic Fields" width="470" height="616" class="alignnone size-full wp-image-1134" /></p>
<p>Теперь создадим группу дополнительных полей под названием &laquo;Фотография&raquo;. Для этого перейдём на страницу <em>Magic Fields → Write Panels (Панели записей)</em> и там кликнем на <em>Edit Fields/Groups (Изменить поля/группы)</em> напротив только что созданной панели «Фото». Там нажимаем на <em>Create a Group</em> и создаём группу.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/create-group.jpg" alt="" title="Создание группы дополнительных полей в Wordpress с помощью плагина Magic Fields" width="470" height="220" class="alignnone size-full wp-image-1137" /></p>
<p>Теперь мы вполне можем позволить себе создать дополнительные поля. Добавим поле «Изображение»: для этого сбегаем в <em>Magic Fields → Write Panels (Панели записей)</em>, напротив панели «Фото» выберем <em>Edit Fields/Groups (Изменить поля/группы)</em> и далее <em>create field (создать поле)</em> справа от группы «Фотография». В качестве <em>типа поля (Type)</em> выберем <em>Image</em>.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/create-image-field.jpg" alt="" title="Создание поля для изображения в Wordpress с помощью плагина Magic Fields" width="470" height="797" class="alignnone size-full wp-image-1144" /></p>
<p>После нажатия на кнопку <em>Continue</em> нам будет предложено настроить максимальные параметры для изображения, поставим <em>Width (Ширину)</em> 400 пикселей и завершим создание дополнительного поля для изображения кнопкой <em>Finish (Закончить)</em>.</p>
<p>Добавим поле &laquo;Описание&raquo;, чтоб иметь возможность подписывать наши изображения. Проделаем всё то же, что и с предыдущим полем, но в качестве <em>типа (Type)</em> выберем <em>Multiline Textbox</em>.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/create-description-field.jpg" alt="" title="Создание дополнительно поля для описание изображения в Wordpress с помощью Magic Fields" width="470" height="777" class="alignnone size-full wp-image-1152" /></p>
<p>Нажав на <em>Continue</em>, настроим предложенные опции следующим образом.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/create-description-field-2.jpg" alt="" title="Настройка  дополнительного поля для описания в Wordpress" width="470" height="243" class="alignnone size-full wp-image-1153" /></p>
<p>Чтобы иметь возможность сортировать изображения по годам, добавим соответствующее поле, в качестве<em> типа (Type)</em> используем <em>Textbox</em>, а в поле <em>Name</em> укажем &laquo;imyear&raquo;.</p>
<p>Чтобы было чем развлекать себя дальше, добавим пару пробных изображений. Пройдём в панель &laquo;Фото&raquo; и выберем <em>New (Новая запись)</em>.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/add-image.jpg" alt="" title="Добавление изображения в фотогалерею на Wordpress" width="470" height="618" class="alignnone size-full wp-image-1161" /></p>
<p>Теперь у нас есть всё для того, чтобы произвести изменения в шаблоне. Я по-прежнему в качестве примера использую шаблон по умолчанию (Default), если у вас возникнут трудности с интеграцией моего кода в свой шаблон, свяжитесь со мной по почте или через комментарии, постараюсь помочь.</p>
<p>Начнём с одиночной записи. Откроем файл <em>single.php</em> и после:</p>
<p><code>&lt;?php the_content('<br />
&lt;p class="serif"&gt;' . __('Read the rest of this entry &raquo;', 'kubrick') . '&lt;/p&gt;<br />
&lt;p&gt;'); ?&gt;</code></p>
<p>добавим изображение:</p>
<p><code>&lt;?php $image = get('image');  if($image != '') { ?&gt;&lt;br /&gt;<br />
&lt;? echo get_image('image'); ?&gt;&lt;br /&gt;<br />
&lt;?php } ?&gt;</code></p>
<p>и снабдим его описанием:</p>
<p><code>&lt;?php $description = get('description');  if($description!= '') { ?&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;?php echo get('description'); ?&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;?php } ?&gt;</code></p>
<p>подчеркнём всё это дело годом:</p>
<p><code>&lt;?php $imyear = get('imyear');  if($imyear!= '') { ?&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;?php echo get('imyear'); ?&gt;  год&lt;/p&gt;<br />
&lt;p&gt;&lt;?php } ?&gt;</code></p>
<p>и порадуемся тому, что у нас всё работает и не глючит.</p>
<p><a href="http://wptest.ru/photos/testovaya-fotografiya/"><img src="http://seogad.ru/wp-content/uploads/2010/02/exemple.jpg" alt="" title="Артём Савельев в Воронеже с Бимом" width="395" height="570" class="aligncenter size-full wp-image-1168" /></a></p>
<p>Теперь подправим шаблон категории, чтобы красиво разместить в нём изображения из рубрики &laquo;Фотографии&raquo;. Откроем файл <em>archive.php (и/или index.php)</em> и после:</p>
<p><code>&lt;?php while (have_posts()) : the_post(); ?&gt;</code></p>
<p>добавим:</p>
<p><code>&lt;?php if (is_category(42) || in_category(42) &#038;& !is_home() &#038;& !is_single()) { ?&gt;&lt;br /&gt;<br />
ЗДЕСЬ БУДЕТ ИЗОБРАЖЕНИЕ&lt;br /&gt;<br />
&lt;?php } else { ?&gt;</code></p>
<p>42&nbsp;&mdash; это ID категории с фотографиями, можно узнать его, если навести курсор на нужную рубрику в админке и посмотреть на адрес ссылки.</p>
<p>Чтобы закончить код, необходимо перед:</p>
<p><code>&lt;?php endwhile; ?&gt;</code></p>
<p>добавить:</p>
<p><code>&lt;?php }; ?&gt;</code></p>
<p>Теперь нам необходимо заменить фразу <em>ЗДЕСЬ БУДЕТ ИЗОБРАЖЕНИЕ</em> на маленькое превью. Добавим на место этой фразы код, который позволит пропорционально уменьшать ширину и высоту изображений.</p>
<p><code>&lt;?php&lt;br /&gt;<br />
//Новая ширина = Данная высота * (Изначальная ширина / Изначальная высота)&lt;br /&gt;<br />
//Новая высота = Данная ширина * (Изначальная высота / Изначальная ширина)&lt;br /&gt;<br />
$img = @getimagesize(''.get('gallery_image').'');&lt;br /&gt;<br />
$w = $img[0];&lt;br /&gt;<br />
$h = $img[1];&lt;br /&gt;<br />
$defaultImageWidth = 150; //замените на желаемую ширину&lt;br /&gt;<br />
$defaultImageHeight = 150; //замените на желаемую высоту&lt;br /&gt;<br />
$imageWidth = $w; // используйте getimagesize() для получения ширины изображения&lt;br /&gt;<br />
$imageHeight = $h; // используйте getimagesize() для получения высоты изображения&lt;br /&gt;<br />
if($imageWidth &gt; $imageHeight)&lt;br /&gt;<br />
{&lt;br /&gt;<br />
    // альбомное изображение&lt;br /&gt;<br />
    $newWidth = $defaultImageWidth;&lt;br /&gt;<br />
    $newHeight = (int)($defaultImageWidth * $imageHeight / $imageWidth);&lt;br /&gt;<br />
    if($newHeight &gt; $defaultImageHeight)&lt;br /&gt;<br />
    {&lt;br /&gt;<br />
        $newHeight = $defaultImageHeight;&lt;br /&gt;<br />
        $newWidth = (int)($defaultImageHeight * $imageWidth / $imageHeight);&lt;br /&gt;<br />
    }&lt;br /&gt;<br />
}&lt;br /&gt;<br />
elseif ($imageHeight &gt; $imageWidth)&lt;br /&gt;<br />
{&lt;br /&gt;<br />
    // портрет&lt;br /&gt;<br />
    $newHeight = $defaultImageHeight;&lt;br /&gt;<br />
    $newWidth = (int)($defaultImageHeight * $imageWidth / $imageHeight);&lt;br /&gt;<br />
    if($newWidth &gt; $defaultImageWidth)&lt;br /&gt;<br />
    {&lt;br /&gt;<br />
        $newWidth = $defaultImageWidth;&lt;br /&gt;<br />
        $newHeight = (int)($defaultImageWidth * $imageHeight / $imageWidth);&lt;br /&gt;<br />
    }&lt;br /&gt;<br />
}&lt;br /&gt;<br />
else&lt;br /&gt;<br />
{&lt;br /&gt;<br />
    // квадратное изображение&lt;br /&gt;<br />
    $newWidth = $defaultImageWidth;&lt;br /&gt;<br />
    $newHeight = $defaultImageHeight;&lt;br /&gt;<br />
} ?&gt;</code></p>
<p>Чтобы показать изображение, после этого кода нужно добавить следующий:</p>
<p><code>&lt;a href="&lt;?php the_permalink() ?&gt;"&lt;br /&gt;<br />
class="image_photogallery"&gt;&lt;br /&gt;<br />
&lt;img src="&lt;?php echo pt(); ?&gt;?src=&lt;? echo get('image'); ?&gt;&#038;w=&lt;?php echo $newWidth ?&gt;&#038;h=&lt;?php echo $newHeight ?&gt;"&lt;br /&gt;<br />
alt="&lt;?php the_title(); ?&gt;"&lt;br /&gt;<br />
title="&lt;?php the_title(); ?&gt;"  /&gt;&lt;br /&gt;<br />
&lt;/a&gt;</code></p>
<p>Я использовал класс <em>.image_photogallery</em>, стиль которого мы немедленно настроим в файле <em>style.css</em>, в конце которого добавим, например, такой код:</p>
<p><code>a.image_photogallery {&lt;br /&gt;<br />
display:block;&lt;br /&gt;<br />
float:left;&lt;br /&gt;<br />
width:180px;&lt;br /&gt;<br />
height:180px;&lt;br /&gt;<br />
text-align:center;&lt;br /&gt;<br />
background-color:#CCCCCC;&lt;br /&gt;<br />
margin-right:15px;&lt;br /&gt;<br />
margin-bottom:15px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
a.image_photogallery img {&lt;br /&gt;<br />
margin-top:15px;&lt;br /&gt;<br />
margin-bottom:15px;&lt;br /&gt;<br />
border:1px solid #FFFFFF;&lt;br /&gt;<br />
}</code></p>
<p>И вот какая красотень у нас получилась. Конечно же, можно настроить стили как вам больше нравится, я только показал, что это возможно.</p>
<p style="text-align: center;"><a href="http://wptest.ru/category/photos/"><img src="http://seogad.ru/wp-content/uploads/2010/02/exemple2.jpg" alt="" title="Пример фотогалереи на Wordpress" width="411" height="404" class="aligncenter size-full wp-image-1190" /></a></p>
<p>Теперь не лишним будет добавить фильтр по годам. Для этого в файле <em>archive.php (и/или index.php)</em> перед:</p>
<p><code>&lt;?php while (have_posts()) : the_post(); ?&gt;</code></p>
<p>вставьте:</p>
<p><code>&lt;?php if (is_category(42) || in_category(42) &#038;& !is_home() &#038;& !is_single()) { ?&gt;&lt;/p&gt;<br />
&lt;form method="post" action=""&gt;<br />
&lt;p&gt;Год:&lt;/p&gt;<br />
&lt;select name="imyear" &gt;<br />
&lt;option value=""&gt;&lt;/option&gt;<br />
&lt;p&gt;&lt;?php&lt;br /&gt;<br />
$listyears2 = $wpdb-&gt;get_results("SELECT DISTINCT meta_value FROM $wpdb-&gt;postmeta&lt;br /&gt;<br />
WHERE meta_key = 'imyear' ORDER BY meta_value");&lt;br /&gt;<br />
foreach ($listyears2 as $listyear2) {&lt;br /&gt;<br />
if ($listyear2-&gt;meta_value != '') {&lt;br /&gt;<br />
$option = '&lt;br /&gt;<br />
&lt;option ';&lt;br /&gt;<br />
if ($listyear2-&gt;meta_value == $_REQUEST["imyear"]) {$option .= 'selected '; }&lt;br /&gt;<br />
$option .= 'value="'.$listyear2-&gt;meta_value.'"&gt;';&lt;br /&gt;<br />
$option .= $listyear2-&gt;meta_value;&lt;br /&gt;<br />
$option .= '&lt;/option&gt;<br />
&lt;p&gt;';&lt;br /&gt;<br />
echo $option;&lt;br /&gt;<br />
}} ?&gt;&lt;br /&gt;<br />
&lt;/select&gt;<br />
&lt;/p&gt;<br />
&lt;input type="submit" value="Показать" class="s_submit" name="submitimyear" /&gt;<br />
&lt;/form&gt;<br />
&lt;p&gt;&lt;?php if (isset($_REQUEST["imyear"])) { $paramyear2=$_REQUEST["imyear"]; } else { $paramyear2=""; };&lt;br /&gt;<br />
if ($paramyear2!= "") {&lt;br /&gt;<br />
query_posts($query_string . '&#038;x_imyear='.$paramyear2);&lt;br /&gt;<br />
} ?&gt;&lt;br /&gt;<br />
&lt;?php }; ?&gt;</code></p>
<p>Всё работает, наслаждаемся.</p>
<p style="text-align: center;"><a href="http://wptest.ru/category/photos/"><img src="http://seogad.ru/wp-content/uploads/2010/02/exemple3.jpg" alt="" title="Пример фотогалереи с фильтром по годам на Wordpress" width="411" height="297" class="aligncenter size-full wp-image-1198" /></a></p>
<p>Конечно, это один из самых простых примеров издевательства над Wordpress с помощью плагина Magic Fields, потенциал которого невероятен. Как только я закончу серию уроков по использованию этого плагина, я планирую составить из них книгу, более подробную и с большим количеством примеров. </p>
<p>Предлагайте свои идеи, расскажите, что вы хотели бы научиться создавать с помощью Magic Fields, и я постараюсь вам помочь в своих следующих постах.</p>
<p><em>P.S. Кстати, вчера получил на почту февральский выпуск журнала <a href="http://blogo-news.com/">БлогоNEWS</a>, который я прочитал почти ни на что не отвлекаясь за пару часов, от чего получил массу удовольствия, особенно когда обнаружил в рубрику &laquo;Дайджест Блогосферы&raquo; упоминание моего недавнего урока &laquo;<a href="http://seogad.ru/tools/cms/comment-modification">Украшаем комментарии в Wordpress</a>&raquo;, за что благодарен всетельно и вседушно и призываю всех почитать <a href="http://blogo-news.com/blogonewsnewdiz5.pdf">новый выпуск журнала БлогоNEWS</a>&nbsp;&mdash; очень много интересностей.</em></p>


<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/mp3-wordpress-magic-fields-jplayer" rel="bookmark">Создание каталога песен на Wordpress с помощью Magic Fields и jPlayer</a><!-- (20.5)--></li>
		<li><a href="http://seogad.ru/cms/magic-fields-wordpress-plugin" rel="bookmark">Плагин Magic Fields&nbsp;&mdash; создание дополнительных полей в Wordpress</a><!-- (15.6)--></li>
		<li><a href="http://seogad.ru/cms/wordpress-photosite" rel="bookmark">Создание фотосайта на Wordpress без использования плагинов</a><!-- (13.6)--></li>
	</ul></div>
]]></content:encoded>
			<wfw:commentRss>http://seogad.ru/cms/magicfields-photosite/feed</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Избавляемся от нежелательных ссылок в комментариях к dofollow-блогу на Wordpress</title>
		<link>http://seogad.ru/blogs/good-dofollow-links</link>
		<comments>http://seogad.ru/blogs/good-dofollow-links#comments</comments>
		<pubDate>Wed, 10 Feb 2010 13:59:48 +0000</pubDate>
		<dc:creator>Артём Савельев</dc:creator>
				<category><![CDATA[Блогинг]]></category>
		<category><![CDATA[dofollow]]></category>
		<category><![CDATA[nofollow]]></category>
		<category><![CDATA[seo-ссылки]]></category>
		<category><![CDATA[комментарии]]></category>
		<category><![CDATA[плагин]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://seogad.ru/?p=1062</guid>
		<description><![CDATA[Последние несколько дней приходится тратить очень много времени на поиск и удаление тонны комментариев, ссылки с которых ведут не на блоги авторов, а на разного калибра неблоги, ГС это или нет&#160;&#8212; судить не стану, мне в любом случае подобные исходящие ссылки не нужны, тем более бесплатно&#160;&#8212; я с Яндексом хочу дружить и с Гуглом. Мне [...]

<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/blogs/comments" rel="bookmark">О популярности постов и комментариях</a><!-- (9.8)--></li>
		<li><a href="http://seogad.ru/cms/comment-modification" rel="bookmark">Украшаем комментарии в Wordpress</a><!-- (8.9)--></li>
	</ul></div>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/02/comments.png" alt="Избавление от нежелательных ссылок в комментариях к dofollow  блогу" title="Избавление от нежелательных ссылок в комментариях к dofollow  блогу" width="470" height="313" class="alignnone size-full wp-image-1073" /></p>
<p>Последние несколько дней приходится тратить очень много времени на поиск и удаление тонны комментариев, ссылки с которых ведут не на блоги авторов, а на разного калибра неблоги, ГС это или нет&nbsp;&mdash; судить не стану, мне в любом случае подобные исходящие ссылки не нужны, тем более бесплатно&nbsp;&mdash; я с Яндексом хочу дружить и с Гуглом. <span id="more-1062"></span></p>
<p>Мне не жалко ссылок, но мне важно, чтобы мой блог был на хорошем счету у поисковых систем, и чтобы кликнув на имя автора комментария, я попал на его блог, или любую другую страницу, на которой я мог бы познакомиться с человеком подробнее (это может быть профиль в какой-либо социальной сети). Ссылки на корпоративные сайты, интернет-магазины и подобные изделия мне не интересны.</p>
<p>Можно решить вопрос несколькими способами, я нашёл для себя наиболее подходящий и, как мне кажется, наиболее выгодный как для блога, так и для спаммеров, которые сэкономят своё и моё время.</p>
<p>Я решил не отказываться от dofollow, это могло бы обидеть моих читателей, что не есть хорошо, но чтобы больше не тратить уйму времени на одобрение/удаление комментариев, я поставил небольшое ограничение: теперь ссылки в комментариях будут dofollow только если автор уже имеет 3 одобренных комментария (количество отображается в скобочках, справа от имени автора). Для этого я использовал плагин <a href="http://money.bigbucksblogger.com/lucias-linky-love-a-dofollow-plugin-to-foil-human-comment-spammers/">Lucia’s Linky Love</a>.</p>
<p>Я не против коротких комментариев типа &laquo;хорошо сказал&raquo;, &laquo;спасибо&raquo; или &laquo;не понравилось&raquo;&nbsp;&mdash; это нормально, необязательно указывать причину приязни или неприязни, бывает так, что не нравится пост, а указать причину не получается, вполне вероятно что просто не нравится автор и к нему предвзятое отношение&nbsp;&mdash; пусть, это не страшно. Но подобные комментарии, так же как и любые другие, имеют для меня ценность, только если они оставлены искренне, а не ради dofollow-ссылки.</p>
<p>Информация обо всём об этом добавлена в форму отправки комментария. Надеюсь, моя новая &laquo;политика&raquo; никого не расстроит, я очень готов обсуждать эти вынужденные нововведения.</p>
<p>А как вы боретесь с подобными явлениями на своих блогах? Может я упустил какой-то полезный манёвр или плагин? Поделитесь опытом <img src='http://seogad.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Желаю вам всего самого интересного.<br />
<a href="http://seogad.ru">Артём Савельев</a>.</p>
<p><em>P.S. А вот от платной, не вполне тематической, но вполне симпатичной ссылки я бы не отказался. Как вариант, приглашаю вас <a href="http://kinomooviz.ru">смотреть фильмы онлайн</a>, только сильно не засматривайтесь. Кстати, кто что хорошего видел в последнее время в кинотеатрах домашних и уличных (на самом деле интересно)?</em></p>


<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/blogs/comments" rel="bookmark">О популярности постов и комментариях</a><!-- (9.8)--></li>
		<li><a href="http://seogad.ru/cms/comment-modification" rel="bookmark">Украшаем комментарии в Wordpress</a><!-- (8.9)--></li>
	</ul></div>
]]></content:encoded>
			<wfw:commentRss>http://seogad.ru/blogs/good-dofollow-links/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Украшаем комментарии в Wordpress</title>
		<link>http://seogad.ru/cms/comment-modification</link>
		<comments>http://seogad.ru/cms/comment-modification#comments</comments>
		<pubDate>Fri, 22 Jan 2010 20:39:33 +0000</pubDate>
		<dc:creator>Артём Савельев</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[dofollow]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[комментарии]]></category>
		<category><![CDATA[плагин]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://seogad.ru/?p=904</guid>
		<description><![CDATA[Сегодня я добрался до формы комментариев своего блога и слегка над ней поиздевался: добавил поле для указания аккаунта в Twitter и автоматическое увеличение поля для ввода сообщения. Посмотрел на всё это дело и понял, что у меня вполне симпатичные комментарии, отчего захотелось показать вам, как сделать такие же. За всю историю блога я успел сотворить [...]

<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/wp-blogger-commments" rel="bookmark">Анонимные комментарии в Wordpress а-ля blogger.com</a><!-- (14.7)--></li>
		<li><a href="http://seogad.ru/blogs/good-dofollow-links" rel="bookmark">Избавляемся от нежелательных ссылок в комментариях к dofollow-блогу на Wordpress</a><!-- (9.9)--></li>
		<li><a href="http://seogad.ru/cms/thememylogin" rel="bookmark">Подключение темы Wordpress к страницам профиля, регистрации и авторизации</a><!-- (7.1)--></li>
	</ul></div>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/01/comments.jpg" alt="Модификация и улучшение комментариев в Wordpress" title="Модификация и улучшение комментариев в Wordpress" width="470" height="313" class="alignnone size-full wp-image-955" /></p>
<p>Сегодня я добрался до формы комментариев своего блога и слегка над ней поиздевался: добавил поле для указания аккаунта в Twitter и автоматическое увеличение поля для ввода сообщения. Посмотрел на всё это дело и понял, что у меня вполне симпатичные комментарии, отчего захотелось показать вам, как сделать такие же. <span id="more-904"></span></p>
<p>За всю историю блога я успел сотворить с комментариями следующее.</p>
<ul>
<li>Разделил комментарии и трекбеки. Очень наглядно это представлено на странице конкурса на &laquo;<a href="http://seogad.ru/blogs/concours">7 лучших советов начинающим блоггерам</a>&raquo;. </li>
<li>Добавил возможность указать свой аккаунт в Твиттере, ссылка на который вместе с иконкой появляется под текстом комментария.</li>
<li>Убрал гадость под названием &laquo;nofollow&raquo;&nbsp;&mdash; это такой тег, который делает из блоггера жадину в глазах его читателей.</li>
<li>Установил простенький антироботовый заборчик.</li>
<li>Сделал комментарии древовидными, отчего они и смотрятся симпатично, и искать в них информацию удобно.</li>
<li>Добавление происходит с помощью технологии Ajax, которая позволяет не перезагружать страницу, когда в этом нет необходимости.</li>
<li>Научил поле для ввода сообщения самоувеличиваться в зависимости от широты слога комментатора.</li>
</ul>
<p>Теперь я подробно опишу свои действия и в качестве примера буду использовать свой сайт для &laquo;<a href="http://wptest.ru/">Тестирования разных штук</a>&raquo;, который постепенно обрастает всякими разностями.</p>
<h3>Отделение трекбеков от комментариев</h3>
<p>Трекбеки&nbsp;&mdash; это такие ссылки, которые другие блоги пытаются автоматически опубликовать у вас на сайте, типа в замен на то, что они сослались на вас. По умолчанию они добавляются в одну кучу с комментариями, что порой очень некрасиво и неудобно. Исправляем.</p>
<p>В вашем шаблоне откройте файл <em>comments.php</em> и после</p>
<p><code>&lt;?php foreach ($comments as $comment) : ?&gt;</code></p>
<p>вставьте</p>
<p><code>&lt;?php $comment_type = get_comment_type(); ?&gt;&lt;br /&gt;<br />
&lt;?php if($comment_type == 'comment') { ?&gt;</code></p>
<p>перед</p>
<p><code>&lt;?php endforeach; ?&gt;</code></p>
<p>добавьте</p>
<p><code>&lt;?php } else { $trackback = true; } /* End of is_comment statement */ ?&gt;</code></p>
<p>перед</p>
<p><code>&lt;?php else : // If there are no comments yet ?&gt;</code></p>
<p>вставьте</p>
<p><code>&lt;?php if ($trackback == true) { ?&gt;&lt;/p&gt;<br />
&lt;h3&gt;Trackbacks&lt;/h3&gt;<br />
&lt;ol&gt;<br />
&lt;?php foreach ($comments as $comment) : ?&gt;&lt;br /&gt;<br />
&lt;?php $comment_type = get_comment_type(); ?&gt;&lt;br /&gt;<br />
&lt;?php if($comment_type != 'comment') { ?&gt;&lt;/p&gt;<br />
&lt;li&gt;&lt;?php comment_author_link() ?&gt;&lt;/li&gt;<br />
&lt;p&gt;&lt;?php } ?&gt;&lt;br /&gt;<br />
&lt;?php endforeach; ?&gt;<br />
&lt;/ol&gt;<br />
&lt;p&gt;&lt;?php } ?&gt;</code></p>
<p>Это пересказ коротенькой статьи &laquo;<a href="http://www.problogdesign.com/how-to/separating-trackbacks-from-comments/">Separating Trackbacks from Comments</a>&raquo;, и этот метод сработает у вас только если вы используете старый шаблон комментариев, а не функцию <em>wp_list_comments ()</em>.</p>
<p>В новых версиях Wordpress (например 2.9.1) в шаблоне <em>Default</em> используется как раз эта функция. Я решил не заморачиваться и заменил файл <em>comments.php</em> на аналогичный из другого стандартного шаблона <em>Classic</em>, где всё сделано почти так, как нам необходимо.</p>
<p>Чтобы всё было полностью хорошо, замените</p>
<p><code>&lt;ol id="commentlist"&gt;</code></p>
<p>на</p>
<p><code>&lt;ol class="commentlist"&gt;</code></p>
<p>Посмотреть результат можно, например, на <a href="http://wptest.ru/renderings/posts-can-have-many-threaded-comments-in-them/">этой странице</a>.</p>
<h3>Древовидные комментарии</h3>
<p>Для этого мы используем замечательный плагин <a href="http://wordpress.org/extend/plugins/wordpress-thread-comment/">Wordpress Thread Comment</a>, который заодно обеспечит нам добавление комментариев с помощью Ajax. Скачаем, установим и приступим к настройкам.</p>
<p>Перейдём на страницу <em>Настройки → Древовидные комментарии</em>. Для примера включим &laquo;Использование поддержки AJAX&raquo; и в поле &laquo;Информировать комментатора о появлении новых комментариев&raquo; выберем &laquo;Commenter choose to do so (default checked)&raquo;.</p>
<p>Теперь проверим, разрешены ли древовидные комментарии на странице <em>Настройки → Обсуждение,</em> и пойдём дальше. Посмотреть результат можно на той же <a href="http://wptest.ru/renderings/posts-can-have-many-threaded-comments-in-them/">странице тестового сайта</a>.</p>
<h3>Captcha</h3>
<p>Чтобы роботы-спамеры нас не мучали, установим какой-нибудь плагин, предназначенный для их отпугивания. Это может быть, например, <a href="http://wordpress.org/extend/plugins/quiz/">Quiz</a> или <a href="http://westseo.ru/amcaptcha/">Amcaptcha от Алексея Московского</a>.</p>
<h3>Избавление от nofollow</h3>
<p>Чтобы наши читатели с удовольствием комментировали наши записи, откроем их ссылки для индексации в Google. Для этого существует замечательный плагин <a href="http://wordpress.org/extend/plugins/sem-dofollow/">Dofollow</a>.</p>
<h3>@Twitter</h3>
<p>Чтобы нашим читателям было ещё интереснее комментировать наш блог, предоставим им возможность оставлять ссылки на свои аккаунты в системе микроблогинга Twitter. Для этого используем плагин <a href="http://wordpress.org/extend/plugins/twitterlink-comments/">Twitterlink Comments</a>. Скачаем, установим и приступим к настройкам.</p>
<p>Перейдём на страницу <em>Настройки → TwitterLink Settings</em> и в поле &laquo;Add Twitter Field Automatically?&raquo; выберем &laquo;No&raquo;. В поле &laquo;Twitter Link Position&raquo; я выбрал &laquo;End of Comment Text&raquo;, что позволит обображать ссылку на твиттер пользователя под его комментарием.</p>
<p><strong>Link Format</strong></p>
<p><em>HTML before link</em>&nbsp;&mdash; здесь я отметил &laquo;No&raquo; для &laquo;Use NoFollow?&raquo; и в текстовое поле вставил следующий код, содержащий иконку Твиттера:</p>
<p><code>&lt;p class="twi"&gt;&lt;img src="http://seogad.ru/twi.png" /&gt;</code></p>
<p><a href="http://icones.pro/twitter-image-png.html">Иконку</a> я взял из замечательной <a href="http://icones.pro/">французской коллекции иконок</a>.</p>
<p><em>HTML after link</em>&nbsp;&mdash; здесь я закрыл тег:</p>
<p><code>&lt;/p&gt;<br />
&lt;p&gt;</code></p>
<p><strong>Модификация шаблона</strong></p>
<p>Теперь сохраним настройки <em>(Save changes)</em> и перейдём к редактированию шаблона. Для начала откроем файл <em>style.css</em> и добавим туда стили для нашей иконки со ссылкой.</p>
<p><code>p.twi {&lt;br /&gt;<br />
line-height:16px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
p.twi img {&lt;br /&gt;<br />
float:left;&lt;br /&gt;<br />
margin-right:5px;&lt;br /&gt;<br />
}</code></p>
<p>Это только пример, можете задизайнить как вам больше нравится.</p>
<p>В ручную добавим текстовое поле в форму отправки комментария. Для этого откроем файл <em>comments.php</em> и после</p>
<p><code>&lt;label for="url"&gt;&lt;small&gt;&lt;?php _e('Website'); ?&gt;&lt;/small&gt;&lt;/label&gt;&lt;/p&gt;<br />
&lt;p&gt;&lt;?php endif; ?&gt;</code></p>
<p>добавим</p>
<p><code>&lt;br /&gt;<br />
&lt;input type="text" name="atf_twitter_id" id="atf_twitter_id" value="" size="22" tabindex="3" /&gt;<br />
&lt;label for="atf_twitter_id"&gt;&lt;small&gt;&lt;?php _e('Имя в Twitter (без http:// и @)'); ?&gt;&lt;/small&gt;&lt;/label&gt;&lt;/p&gt;<br />
&lt;p&gt;</code></p>
<h3>Модификация поля для сообщений</h3>
<p>С Твиттером мы разобрались, и если есть желание, можем добавить последнюю вкусность для нашей формы добавления комментария&nbsp;&mdash; автоматически расширяемое поле для сообщения, для создания которого понадобится скачать и активировать плагин <a href="http://wordpress.org/extend/plugins/comment-autogrow/">Comment Autogrow</a>. К сожалению, на моём тестовом блоге этот плагин пришлось отключить, так как он мешал корректной демонстрации моего урока по <a href="http://seogad.ru/tools/cms/mp3-wordpress-magic-fields-jplayer">созданию каталога песен на Wordpress</a>, но он активирован на этом блоге.</p>
<p>На этом урок окончен. Надеюсь, вам понравилось украшать комментарии на Wordpress вместе со мной. </p>
<p>До новых встреч. Желаю всего самого интересного.<br />
<a href="http://seogad.ru">Артём Савельев</a>.</p>
<p><em>P.S. Не забываем, что Аббат Кальне проводит <a href="http://do-web.ru/news/flashmobs/konkurs-dlya-bloggerov">конкурс для блоггеров</a>, в рамках которого просит рассказать участников, чем для них является блоггинг. Работы принимаются до 20 февраля.</em></p>


<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/wp-blogger-commments" rel="bookmark">Анонимные комментарии в Wordpress а-ля blogger.com</a><!-- (14.7)--></li>
		<li><a href="http://seogad.ru/blogs/good-dofollow-links" rel="bookmark">Избавляемся от нежелательных ссылок в комментариях к dofollow-блогу на Wordpress</a><!-- (9.9)--></li>
		<li><a href="http://seogad.ru/cms/thememylogin" rel="bookmark">Подключение темы Wordpress к страницам профиля, регистрации и авторизации</a><!-- (7.1)--></li>
	</ul></div>
]]></content:encoded>
			<wfw:commentRss>http://seogad.ru/cms/comment-modification/feed</wfw:commentRss>
		<slash:comments>45</slash:comments>
		</item>
		<item>
		<title>Подключение темы Wordpress к страницам профиля, регистрации и авторизации</title>
		<link>http://seogad.ru/cms/thememylogin</link>
		<comments>http://seogad.ru/cms/thememylogin#comments</comments>
		<pubDate>Sat, 16 Jan 2010 00:00:05 +0000</pubDate>
		<dc:creator>Артём Савельев</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[плагин]]></category>
		<category><![CDATA[уроки]]></category>
		<category><![CDATA[шаблоны]]></category>

		<guid isPermaLink="false">http://seogad.ru/?p=794</guid>
		<description><![CDATA[Wordpress всем хорош, в том числе и тем, что жить и работать спокойно не даёт&#160;&#8212; постоянно чего-то в нём не хватает для полного счастья, отчего и разработчикам плагинов радость&#160;&#8212; есть чем заняться, и всем, кому эти плагины облегчают жизнь. Сегодня я расскажу о том, как сделать страницы авторизации, регистрации, редактирования профиля и напоминания в одном [...]

<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/wp-blogger-commments" rel="bookmark">Анонимные комментарии в Wordpress а-ля blogger.com</a><!-- (12.7)--></li>
		<li><a href="http://seogad.ru/cms/comment-modification" rel="bookmark">Украшаем комментарии в Wordpress</a><!-- (7.1)--></li>
		<li><a href="http://seogad.ru/cms/magicfields-photosite" rel="bookmark">Создание фотосайта на Wordpress с помощью плагина Magic Fields</a><!-- (6.6)--></li>
	</ul></div>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="alignnone size-full wp-image-855" title="Как сделать страницы профиля, регистрации и авторизации в одном стиле с остальным сайтом на Wordpress" src="http://seogad.ru/wp-content/uploads/2010/01/themepages2.jpg" alt="Как сделать страницы профиля, регистрации и авторизации в одном стиле с остальным сайтом на Wordpress" width="470" height="312" /></p>
<p>Wordpress всем хорош, в том числе и тем, что жить и работать спокойно не даёт&nbsp;&mdash; постоянно чего-то в нём не хватает для полного счастья, отчего и разработчикам плагинов радость&nbsp;&mdash; есть чем заняться, и всем, кому эти плагины облегчают жизнь. Сегодня  я расскажу о том, как сделать страницы авторизации, регистрации, редактирования профиля и напоминания в одном стиле с публичной частью сайта на Wordpress. <span id="more-794"></span></p>
<p>Есть в этом мире два замечательных плагина: <a href="http://wordpress.org/extend/plugins/theme-my-login/">Theme My Login</a> и <a href="http://wordpress.org/extend/plugins/theme-my-profile/">Theme My Profile</a>, они-то и помогут нам в нашем деле. Скачаем, установим и приступим к настройкам и модификациям.</p>
<p>Рабочий пример вы можете пощупать на моём <a href="http://wptest.ru" rel="nofollow">тестовом сайте</a>.</p>
<h3>Установка</h3>
<p>Существуют как минимум два способа установить плагин для Wordpress.</p>
<p><strong>Ручная установка</strong></p>
<ol>
<li>Скачиваем архив с нужным плагином на локальный компьютер.</li>
<li>Извлекаем архив.</li>
<li>Полученную папку с плагином с помощью FTP-клиента помещаем в каталог <em>/wp-content/plugins</em>, который находится в папке с вашим сайтом на виртуальном хостинге (как правило).</li>
<li>В панели администратора переходим на страницу <em>Плагины → Установленные</em>, находим наш плагин и нажимаем &laquo;Активировать&raquo;.</li>
</ol>
<p><strong>Автоматическая установка</strong></p>
<p>Если плагин есть в <a href="http://wordpress.org/extend/plugins/">репозитории Wordpress</a>, то его можно найти и добавить на сайт прямо из админки.</p>
<ol>
<li>В панели управления заходим на страницу <em>Плагины → Добавить новый</em>.</li>
<li>Вводим в поле поиска название плагина, нажимаем &laquo;Найти плагины&raquo;.</li>
<li>Из результатов поиска выбираем нужный плагин и нажимаем &laquo;Установить&raquo;, откроется окно с описанием, в нём также нажимаем &laquo;Установить сейчас&raquo;.</li>
<li>Возможно вам будет предложено ввести данные для FTP-доступа.</li>
<li>После того, как плагин загрузится, нажмите на &laquo;Активировать плагин&raquo;.</li>
</ol>
<h3>Настройка плагинов</h3>
<p>Я подготовил для вас переводы этих плагинов на русский язык. Скачайте и загрузите эти файлы в папки <em>wp-content/plugins/theme-my-login/language</em> и <em>wp-content/plugins/theme-my-profile/language</em> соответственно.</p>
<ul>
<li><a href='http://seogad.ru/wp-content/uploads/2010/01/theme-my-login-ru_RU.zip'>theme-my-login-ru_RU.zip</a></li>
<li><a href='http://seogad.ru/wp-content/uploads/2010/01/theme-my-profile-ru_RU.zip'>theme-my-profile-ru_RU.zip</a></li>
</ul>
<p>Некоторые фразы не переведены, так как не доступны для перевода с помощью программы Poedit, а править напрямую файлы плагинов не очень предусмотрительно.</p>
<p><strong>Настройка Theme My Login</strong></p>
<p><em>General</em>&nbsp;&mdash; в нашем примере мы не будем включать ни один из параметров.</p>
<p><em>Template</em>&nbsp;&mdash; здесь у нас есть возможность настроить текст служебных ссылок и приветствия <em>(Titles)</em>, а также текст служебных сообщений <em>(Messages)</em>.</p>
<p><em>Links</em>&nbsp;&mdash; это настройка ссылок для виджета, который в нашем примере мы использовать не будем, почему&nbsp;&mdash; объясню ниже. А если по делу&nbsp;&mdash; там всё просто, можно добавлять и удалять ссылки, которые будут видны авторизованным пользователям, причём для каждой группы их можно настраивать индивидуально.</p>
<p><em>Redirection</em>&nbsp;&mdash; после авторизации можно отправить пользователей из разных групп на разные страницы.</p>
<p><em>E-mail</em>&nbsp;&mdash; здесь можно и нужно настроить сообщения, которые плагин будет отправлять пользователям по разным поводам.</p>
<p>Теперь объяснюсь по поводу виджета&nbsp;&mdash; если он вам понадобится, вы всегда сможете его использовать, я же покажу вам альтернативный способ сделать форму входа и меню пользователя с помощью изменения кода шаблона&nbsp;&mdash; так будет более гибко, у вас будет возможность самим решить, что показывать неавторизованным, а что&nbsp;&mdash; авторизованным пользователям, будь то ссылки, картинки, любой другой код.</p>
<p>В нужном месте шаблона вставляем следующий код:</p>
<p><code>&lt;?php global $user_ID, $user_identity, $user_level ?&gt;&lt;br /&gt;<br />
&lt;?php if ( $user_ID ) : ?&gt;&lt;br /&gt;<br />
СОДЕРЖИМОЕ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ&lt;br /&gt;<br />
&lt;?php else : ?&gt;&lt;br /&gt;<br />
СОДЕРЖИМОЕ ДЛЯ НЕАВТОРИЗОВАННЫХ ПОЛЬЗОВАТЕЛЕЙ&lt;br /&gt;<br />
&lt;?php if ( get_option('users_can_register') ) : ?&gt;&lt;br /&gt;<br />
ЕСЛИ МОЖНО ЗАРЕГИСТРИРОВАТЬСЯ&lt;br /&gt;<br />
&lt;?php endif ?&gt;&lt;br /&gt;<br />
&lt;?php endif; ?&gt;</code></p>
<p>Теперь меняем то, что написано заглавными буквами, на то, что нам нужно. Можно последовать моему примеру, а можно использовать собственный код.</p>
<p><em>СОДЕРЖИМОЕ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ</em> я заменил на ссылки для пользователя, причём ссылка на администрирование доступна только администраторам.</p>
<p><code>&lt;br /&gt;<br />
&lt;h2 class="widgettitle"&gt;Меню пользователя&lt;/h2&gt;<br />
&lt;p&gt;Здравствуйте, &lt;strong&gt;&lt;?php echo $user_identity ?&gt;&lt;/strong&gt;.&lt;/p&gt;<br />
&lt;ul&gt;<br />
&lt;?php global $user_ID; if( $user_ID ) : ?&gt;&lt;br /&gt;<br />
&lt;?php if( current_user_can('level_10') ) : ?&gt;&lt;/p&gt;<br />
&lt;li&gt;&lt;a href="&lt;?php bloginfo('url') ?&gt;/wp-admin/index.php"&gt;Администрирование&lt;/a&gt;&lt;/li&gt;<br />
&lt;p&gt;&lt;?php else : ?&gt;&lt;br /&gt;<br />
&lt;?php endif; ?&gt;&lt;br /&gt;<br />
&lt;?php endif; ?&gt;&lt;/p&gt;<br />
&lt;li&gt;&lt;a href="&lt;?php bloginfo('url') ?&gt;/wp-admin/profile.php"&gt;Настройки профиля&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="&lt;?php echo wp_logout_url(get_permalink()); ?&gt;"&gt;Выйти&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p&gt;</code></p>
<p>В результате получаем примерно следующее:</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/01/themepages_1.jpg" alt="Содержимое для пользователей" title="Содержимое для пользователей" width="220" height="120" class="alignnone size-full wp-image-870" /></p>
<p><em>СОДЕРЖИМОЕ ДЛЯ НЕАВТОРИЗОВАННЫХ ПОЛЬЗОВАТЕЛЕЙ</em> мы поменяем на форму авторизации пользователей.</p>
<p><code>&lt;br /&gt;<br />
&lt;h2 class="widgettitle"&gt;Авторизация&lt;/h2&gt;<br />
&lt;form name="loginform-tml-main" id="loginform-tml-main" action="/login/?instance=tml-main&#038;action=login" method="post"&gt;<br />
&lt;p&gt;&lt;label for="log-tml-main"&gt;Логин&lt;/label&gt;&lt;/p&gt;<br />
&lt;input type="text" name="log-tml-main" id="log-tml-main" class="input" size="18" /&gt;<br />
&lt;p&gt;&lt;label for="pwd-tml-main"&gt;Пароль&lt;/label&gt;&lt;/p&gt;<br />
&lt;input type="password" name="pwd-tml-main" id="pwd-tml-main" class="input" value="" size="18" /&gt;<br />
&lt;p&gt;&lt;label for="rememberme-tml-main"&gt;&lt;br /&gt;<br />
&lt;input name="rememberme-tml-main" type="checkbox" id="rememberme-tml-main" value="forever" /&gt; Запомнить?&lt;/label&gt;&lt;/p&gt;<br />
&lt;input type="submit" name="login-submit-tml-main" id="login-submit-tml-main" value="Войти" /&gt;<br />
&lt;input type="hidden" name="redirect_to" value="http://wptest.ru/login/" /&gt;<br />
&lt;input type="hidden" name="testcookie" value="1" /&gt;<br />
&lt;/form&gt;<br />
&lt;p&gt;</code></p>
<p>Неавторизованным пользователям достанется примерно такая форма:</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/01/themepages_2.jpg" alt="Форма входа на сайт" title="Форма входа на сайт" width="220" height="180" class="alignnone size-full wp-image-872" /></p>
<p><em>ЕСЛИ МОЖНО ЗАРЕГИСТРИРОВАТЬСЯ</em> заменим на ссылки на страницы авторизации и восстановления пароля.</p>
<p><code>&lt;ul&gt;<br />
&lt;li&gt;&lt;a href="&lt;?php bloginfo('url') ?&gt;/login/?instance=tml-main&#038;action=register"&gt;Регистрация&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href="&lt;?php bloginfo('url') ?&gt;/wp-login.php?action=lostpassword"&gt;Забыли пароль?&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;p&gt;</code></p>
<p>Вот такую красотень увидят все, кто ещё не авторизовался или не зарегистрировался на сайте.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2010/01/themepages_3.jpg" alt="Форма авторизации на сайте и ссылки на регистрацию и восстановление пароля" title="Форма авторизации на сайте и ссылки на регистрацию и восстановление пароля" width="220" height="224" class="alignnone size-full wp-image-874" /></p>
<p>С плагином Theme My Login мы разобрались. Приступим к его товарищу.</p>
<p><strong>Theme My Profile</strong></p>
<p>Здесь всё предельно просто. Заходим в <em>Настройки → Theme My Profile</em> и выбираем группы пользователей, для которых необходимо темизировать страницу редактирования профиля.</p>
<p>Возможно, вам захочется настроить стиль этой страницы. Для этого вам понадобится внести изменения в файл <em>style.css</em>. Я добавил туда следующее:</p>
<p><code>#your-profile .form-table td {&lt;br /&gt;<br />
text-align:left;&lt;br /&gt;<br />
width:60%;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#your-profile .form-table th {&lt;br /&gt;<br />
text-align:right;&lt;br /&gt;<br />
vertical-align:top;&lt;br /&gt;<br />
width:30%;&lt;br /&gt;<br />
padding-top:8px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#your-profile .form-table input {&lt;br /&gt;<br />
display:block;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#your-profile .form-table textarea {&lt;br /&gt;<br />
width:260px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#your-profile .form-table select {&lt;br /&gt;<br />
height:auto;&lt;br /&gt;<br />
width:260px;&lt;br /&gt;<br />
}</code></p>
<p>Надеюсь, урок для вас не был сложным. С удовольствием отвечу на ваши вопросы в комментариях. Живой пример вы можете посмотреть и пощупать на моём <a href="http://wptest.ru/">тестовом сайте</a>.</p>
<p>Всего самого доброго.<br />
<a href="http://seogad.ru">Артём Савельев</a>.</p>
<p><em>P.S. Кстати, иллюстрация к уроку создана из скриншотов недавно созданного мной <a href="http://majorsales.ru/">блога Сергея Ройзмана</a>, который публикует уникальную информацию для руководителей продающих подразделений крупных Российских и международных компаний, КАМов (Key Account Managers), Продакт, Сейлз менеджеров, работающих в Больших продажах (B2B и B2G).</em></p>
<p><em>P.P.S. Типография Галеон предоставляет полиграфические услуги в Москве&nbsp;&mdash; <a href="http://www.printodrom.ru/">офсетная печать</a>, современное качество.</em></p>


<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/wp-blogger-commments" rel="bookmark">Анонимные комментарии в Wordpress а-ля blogger.com</a><!-- (12.7)--></li>
		<li><a href="http://seogad.ru/cms/comment-modification" rel="bookmark">Украшаем комментарии в Wordpress</a><!-- (7.1)--></li>
		<li><a href="http://seogad.ru/cms/magicfields-photosite" rel="bookmark">Создание фотосайта на Wordpress с помощью плагина Magic Fields</a><!-- (6.6)--></li>
	</ul></div>
]]></content:encoded>
			<wfw:commentRss>http://seogad.ru/cms/thememylogin/feed</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Создание каталога песен на Wordpress с помощью Magic Fields и jPlayer</title>
		<link>http://seogad.ru/cms/mp3-wordpress-magic-fields-jplayer</link>
		<comments>http://seogad.ru/cms/mp3-wordpress-magic-fields-jplayer#comments</comments>
		<pubDate>Mon, 23 Nov 2009 18:18:53 +0000</pubDate>
		<dc:creator>Артём Савельев</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[JPlayer]]></category>
		<category><![CDATA[Magic Fields]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[каталог]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://seogad.ru/?p=394</guid>
		<description><![CDATA[Сегодня я расскажу вам о том, как создать каталог песен с помощью Wordpress, плагина Magic Fields и скрипта jPlayer. Для своих уроков я создал демо сайт, на котором вы можете посмотреть, что у нас с вами получится. Итак, у нас уже есть установленный Wordpress и активирован плагин Magic Fields. Для начала зайдём в панель администратора [...]

<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/magicfields-photosite" rel="bookmark">Создание фотосайта на Wordpress с помощью плагина Magic Fields</a><!-- (20.7)--></li>
		<li><a href="http://seogad.ru/cms/magic-fields-wordpress-plugin" rel="bookmark">Плагин Magic Fields&nbsp;&mdash; создание дополнительных полей в Wordpress</a><!-- (12.3)--></li>
		<li><a href="http://seogad.ru/cms/wordpress-photosite" rel="bookmark">Создание фотосайта на Wordpress без использования плагинов</a><!-- (8.7)--></li>
	</ul></div>
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2009/11/mp31.jpg" alt="Создание каталога песен на Wordpress с помощью Magic Fields и jPlayer" title="Создание каталога песен на Wordpress с помощью Magic Fields и jPlayer" width="470" height="257" class="alignnone size-full wp-image-424" /></p>
<p>Сегодня я расскажу вам о том, как создать каталог песен с помощью Wordpress, плагина <a href="http://magicfields.org/">Magic Fields</a> и скрипта <a href="http://www.happyworm.com/jquery/jplayer">jPlayer</a>. Для своих уроков я создал <a href="http://wptest.ru/">демо сайт</a>, на котором вы можете посмотреть, что у нас с вами получится. <span id="more-394"></span></p>
<p>Итак, у нас уже есть установленный Wordpress и активирован плагин Magic Fields. Для начала зайдём в панель администратора и там <em>создадим новую категорию</em> под названием «Песни». Далее нам нужно создать <em>панель записей</em>, за этим идём в <em>Magic Fields → Write Panels (Панели записей)</em> и там нажимаем на <em>Create a Write Panel</em> (Создать панель записей) и создаём панель записей.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2009/11/1.jpg" alt="Создание панели записей с Magic Fields" title="Создание панели записей с Magic Fields" width="470" height="601" class="alignnone size-full wp-image-397" /></p>
<p>Теперь в нашей панели записей создадим группу дополнительных полей под названием «Композиция». Для этого нам нужно пойти в <em>Magic Fields → Write Panels (Панели записей)</em> и нажать <em>Edit Fields/Groups (Изменить поля/группы)</em> напротив только что созданной панели «Песни». Там нажимаем на <em>Create a Group</em> и создаём группу.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2009/11/2.jpg" alt="Создание группы полей в Magic Fields" title="Создание группы полей в Magic Fields" width="470" height="245" class="alignnone size-full wp-image-399" /></p>
<p>Затем создадим дополнительные поля. Начнём с поля «Исполнитель»: идём в <em>Magic Fields → Write Panels (Панели записей)</em>, напротив панели «Песни» нажимаем <em>Edit Fields/Groups (Изменить поля/группы)</em> и кликаем на <em>create field (создать поле)</em> справа от только что созданной группы «Композиция» и создаём дополнительное поле.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2009/11/3.jpg" alt="Создание дополнительного поля в Magic Fields" title="Создание дополнительного поля в Magic Fields" width="470" height="759" class="alignnone size-full wp-image-400" /></p>
<p>Для загрузки mp3 мы создадим поле «Файл» и в качестве <em>типа поля (Type)</em> укажем <em>Audio</em>.</p>
<p>Также я создал ещё поля «Альбом» и «Год» для последующей удобной сортировки композиций. Все поля создаются так же, как мы поступили с «Исполнителем» и «Файлом», о разных типах я рассказывал во <a href="http://seogad.ru/cms/magic-fields-wordpress-plugin">вступительной статье этой серии</a>.</p>
<p>Теперь добавим пару песен, чтобы было с чем упражняться. Пойдём в панель «Песни» и там выберем <em>New (Новая запись)</em>. Мне очень нравится Жак Брель и группа <a href="http://pilot.spb.ru/">Пилот</a>, поэтому я добавлю именно их песни, снабжённые текстами.</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2009/11/4.jpg" alt="Добавление песни в Wordpress и Magic Fields" title="Добавление песни в Wordpress и Magic Fields" width="470" height="300" class="alignnone size-full wp-image-401" /></p>
<p>Добавив песни, сделаем проигрыватель. Причём, у нас их будет два варианта: плейлист со всеми песнями (с сортировкой по разным параметрам) и отдельная страница для каждой песни с текстом, комментариями и всем прилагающимся.</p>
<p>Нам понадобится скачать архив со скриптом  <a href="http://www.happyworm.com/jquery/jplayer/download.htm">jPlayer</a>, разархивировать его и загрузить файлы <em>Jplayer.swf</em> и <em>jquery.jplayer.js</em> в папку <em>js</em>, которую необходимо создать в каталоге с шаблоном (например <em>/wp-content/themes/default/js</em>).</p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2009/11/5.jpg" alt="Загрузка файлов по FTP" title="Загрузка файлов по FTP" width="470" height="161" class="alignnone size-full wp-image-402" /></p>
<p>Теперь можно взглянуть на разные <a href="http://www.happyworm.com/jquery/jplayer/0.2.5/demos.htm">демо проигрывателя</a> и выбрать то, что по душе именно вам. Кстати, внешний вид легко изменяем с помощью CSS и javascript.</p>
<p>Выбрав понравившийся вариант, приступим к его установке. Для начала узнаем ID категории с песнями, чтобы плеер работал только для них. Я, например, в админке Wordpress в разделе «Рубрики» подвожу мышкой к рубрике «Песни» и снизу в строке состояния браузера вижу ссылку, последняя цифра которой и есть то, что я ищу.</p>
<p>Подключаем плеер для одной песни. Сначала откроем файл <em>header.php</em> вашего шаблона и после </title> вставим следующий код:</p>
<p><code>&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"&gt;&lt;/script&gt;&lt;br /&gt;<br />
&lt;script type="text/javascript" src="&lt;?php bloginfo('stylesheet_directory'); ?&gt;/js/jquery.jplayer.js"&gt;&lt;/script&gt;</code></p>
<p>Тем самым мы подключили необходимые скрипты. Теперь нужно после этого кода вставить код самого плеера, окруженный условиями так, чтобы он работал только в категории «Песни», ID которой 3, только если открыта одиночная запись и только если для этой записи загружен файл.</p>
<p><code>&lt;?php if (in_category(3) &#038;& is_single()) {&lt;br /&gt;<br />
$file = get('file'); if ($file != "") {&lt;br /&gt;<br />
?&gt;&lt;br /&gt;<br />
&lt;script&gt;<br />
$(document).ready(function(){<br />
	$("#jquery_jplayer").jPlayer({<br />
		ready: function () {<br />
			$(this).setFile("&lt;?php echo get('file'); ?&gt;").play();<br />
			demoInstanceInfo($(this), $("#jplayer_info"));<br />
		},<br />
		cssPrefix: "single",<br />
		volume: 50,<br />
		oggSupport: false,<br />
		swfPath: "&lt;?php bloginfo('stylesheet_directory'); ?&gt;/js",<br />
	})<br />
	.jPlayerId("play", "player_play_single")<br />
	.jPlayerId("pause", "player_pause_single")<br />
	.jPlayerId("stop", "player_stop_single")<br />
	.jPlayerId("loadBar", "player_progress_load_bar_single")<br />
	.jPlayerId("playBar", "player_progress_play_bar_single")<br />
	.jPlayerId("volumeMin", "player_volume_min_single")<br />
	.jPlayerId("volumeMax", "player_volume_max_single")<br />
	.jPlayerId("volumeBar", "player_volume_bar_single")<br />
	.jPlayerId("volumeBarValue", "player_volume_bar_value_single")<br />
	.onProgressChange( function(loadPercent, playedPercentRelative, playedPercentAbsolute, playedTime, totalTime) {<br />
		var myPlayedTime = new Date(playedTime);<br />
		var ptMin = (myPlayedTime.getUTCMinutes() &lt; 10) ? "0" + myPlayedTime.getUTCMinutes() : myPlayedTime.getUTCMinutes();<br />
		var ptSec = (myPlayedTime.getUTCSeconds() &lt; 10) ? "0" + myPlayedTime.getUTCSeconds() : myPlayedTime.getUTCSeconds();<br />
		$("#play_time_single").text(ptMin+":"+ptSec);<br />
		var myTotalTime = new Date(totalTime);<br />
		var ttMin = (myTotalTime.getUTCMinutes() &lt; 10) ? "0" + myTotalTime.getUTCMinutes() : myTotalTime.getUTCMinutes();<br />
		var ttSec = (myTotalTime.getUTCSeconds() &lt; 10) ? "0" + myTotalTime.getUTCSeconds() : myTotalTime.getUTCSeconds();<br />
		$("#total_time_single").text(ttMin+":"+ttSec);<br />
	})<br />
	.onSoundComplete( function() {<br />
		$(this).play();<br />
	});<br />
});<br />
&lt;/script&gt;&lt;br /&gt;<br />
&lt;?php } } ?&gt;</code></p>
<p>Теперь настроим стили, картинки для которого я благополучно забрал с <a href="http://www.happyworm.com/jquery/jplayer/0.2.5/demo-02.htm">рабочего примера</a> действием «Сохранить как». Они есть в архиве, который можно скачать ниже на этой странице. Изображения нужно загрузить в папку <em>images</em> вашего шаблона. Если такой папки нет, то её нужно создать. Потом откроем файл <em>style.css</em> и добавим в конце:</p>
<p><code>#player_container_single {&lt;br /&gt;<br />
	position: relative;&lt;br /&gt;<br />
	background-color:#eee;&lt;br /&gt;<br />
	width:418px;&lt;br /&gt;<br />
	height:100px;&lt;br /&gt;<br />
	border:1px solid #009be3;&lt;br /&gt;<br />
	margin-top:20px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_container_single  ul#player_controls_single {&lt;br /&gt;<br />
	list-style-type:none;&lt;br /&gt;<br />
	padding:0;&lt;br /&gt;<br />
	margin: 0;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_container_single  ul#player_controls_single li {&lt;br /&gt;<br />
	overflow:hidden;&lt;br /&gt;<br />
	text-indent:-9999px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_play_single,&lt;br /&gt;<br />
#player_pause_single {&lt;br /&gt;<br />
	display: block;&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:40px;&lt;br /&gt;<br />
	top:20px;&lt;br /&gt;<br />
	width:40px;&lt;br /&gt;<br />
	height:40px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_play_single {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") 0 0 no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_play_single.single_hover {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -41px 0 no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_pause_single {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") 0 -42px no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_pause_single.single_hover {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -41px -42px no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_stop_single {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:90px;&lt;br /&gt;<br />
	top:26px;&lt;br /&gt;<br />
	background: url("images/spirites.jpg") 0 -83px no-repeat;&lt;br /&gt;<br />
	width:28px;&lt;br /&gt;<br />
	height:28px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_stop_single.single_hover {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -29px -83px no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_progress_single {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:130px;&lt;br /&gt;<br />
	top:32px;&lt;br /&gt;<br />
	background-color: #eee;&lt;br /&gt;<br />
	width:122px;&lt;br /&gt;<br />
	height:15px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_progress_load_bar_single {&lt;br /&gt;<br />
	background: url("images/bar_load.gif")  top left repeat-x;&lt;br /&gt;<br />
	width:0px;&lt;br /&gt;<br />
	height:15px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_progress_load_bar_single.single_buffer {&lt;br /&gt;<br />
	background: url("images/bar_buffer.gif")  top left repeat-x;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_progress_play_bar_single {&lt;br /&gt;<br />
	background: url("images/bar_play.gif") top left repeat-x ;&lt;br /&gt;<br />
	width:0px;&lt;br /&gt;<br />
	height:15px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_volume_min_single {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:274px;&lt;br /&gt;<br />
	top:32px;&lt;br /&gt;<br />
	background: url("images/spirites.jpg") 0 -170px no-repeat;&lt;br /&gt;<br />
	width:18px;&lt;br /&gt;<br />
	height:15px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_volume_max_single {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:346px;&lt;br /&gt;<br />
	top:32px;&lt;br /&gt;<br />
	background: url("images/spirites.jpg") 0 -186px no-repeat;&lt;br /&gt;<br />
	width:18px;&lt;br /&gt;<br />
	height:15px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_volume_min_single.single_hover {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -19px -170px no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_volume_max_single.single_hover {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -19px -186px no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_volume_bar_single {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:292px;&lt;br /&gt;<br />
	top:37px;&lt;br /&gt;<br />
	background: url("images/volume_bar.gif") repeat-x top left;&lt;br /&gt;<br />
	width:46px;&lt;br /&gt;<br />
	height:5px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_volume_bar_value_single {&lt;br /&gt;<br />
	background: url("images/volume_bar_value.gif") repeat-x top left;&lt;br /&gt;<br />
	width:0px;&lt;br /&gt;<br />
	height:5px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_playlist_message_single {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:0;&lt;br /&gt;<br />
	bottom:0;&lt;br /&gt;<br />
	width:338px;&lt;br /&gt;<br />
	padding:5px 40px 10px 40px;&lt;br /&gt;<br />
	font-family: Arial, Helvetica, sans-serif;&lt;br /&gt;<br />
	line-height:1.4em;&lt;br /&gt;<br />
	height:1em;&lt;br /&gt;<br />
	background-color:#ccc;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#play_time_single,&lt;br /&gt;<br />
#total_time_single {&lt;br /&gt;<br />
	padding-top:.3em;&lt;br /&gt;<br />
	font-weight:normal;&lt;br /&gt;<br />
	font-style:oblique;&lt;br /&gt;<br />
	font-size:.7em;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#play_time_single {&lt;br /&gt;<br />
	float:left;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#total_time_single {&lt;br /&gt;<br />
	float:right;&lt;br /&gt;<br />
	text-align: right;&lt;br /&gt;<br />
}</code></p>
<p>Конечно же, картинки желательно сделать свои и подогнать под их цвет и размер стиль всего плеера, но моя цель познакомить вас с тем, как это в принципе работает.</p>
<p>Теперь вызовим наш плеер в том месте, где нам хотелось бы его увидеть. Мне нравится уютное местечко прямо под заголовком. Для этого нам нужно открыть файл single.php (или index.php, если у вас нет такого файла) и после того места, где у вас заголовок, вставить следующий код:</p>
<p><code>&lt;?php $file = get('file');  if($file != '') { ?&gt;&lt;/p&gt;<br />
&lt;div id="jquery_jplayer"&gt;&lt;/div&gt;<br />
&lt;div id="player_container_single"&gt;<br />
&lt;ul id="player_controls_single"&gt;<br />
&lt;li id="player_play_single"&gt;play&lt;/li&gt;<br />
&lt;li id="player_pause_single"&gt;pause&lt;/li&gt;<br />
&lt;li id="player_stop_single"&gt;stop&lt;/li&gt;<br />
&lt;li id="player_volume_min_single"&gt;min volume&lt;/li&gt;<br />
&lt;li id="player_volume_max_single"&gt;max volume&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;div id="player_progress_single"&gt;<br />
&lt;div id="player_progress_load_bar_single"&gt;<br />
&lt;div id="player_progress_play_bar_single"&gt;&lt;/div&gt;<br />
&lt;/p&gt;&lt;/div&gt;<br />
&lt;/p&gt;&lt;/div&gt;<br />
&lt;div id="player_volume_bar_single"&gt;<br />
&lt;div id="player_volume_bar_value_single"&gt;&lt;/div&gt;<br />
&lt;/p&gt;&lt;/div&gt;<br />
&lt;div id="player_playlist_message_single"&gt;<br />
&lt;div id="play_time_single"&gt;&lt;/div&gt;<br />
&lt;div id="total_time_single"&gt;&lt;/div&gt;<br />
&lt;/p&gt;&lt;/div&gt;<br />
&lt;/p&gt;&lt;/div&gt;<br />
&lt;p&gt;&lt;?php } ?&gt;</code></p>
<p>Теперь проверяем. Сразу всё не заработало, потому что скрипты имеют свойство конфликтовать. Необходимо отключить функцию <em>Edit-n-place</em> в <em>настройках Magic Fields</em>, и тогда всё будет отлично функционировать.</p>
<p>Добавим ещё информацию об исполнителе, альбоме и укажем год. Сделаем этом под плеером, прямо перед текстом:</p>
<p><code>&lt;?php $singer = get('singer');  if($singer != '') { ?&gt;Исполнитель: &lt;?php echo $singer; ?&gt;&lt;br /&gt;&lt;?php } ?&gt;&lt;?php $album = get('album');  if($album != '') { ?&gt;Альбом: &lt;?php echo $album; ?&gt;&lt;br /&gt;&lt;?php } ?&gt;&lt;?php $year = get('year');  if($year != '') { ?&gt;Год: &lt;?php echo $year; ?&gt;&lt;br /&gt;&lt;?php } ?&gt;</code></p>
<p><a href="http://wptest.ru/mp3/krov/" target="_blank"><img src="http://seogad.ru/wp-content/uploads/2009/11/6.jpg" alt="Пример работы jPlayer и Magic Fields на странице с одной записью" title="Пример работы jPlayer и Magic Fields на странице с одной записью" width="470" height="200" class="alignnone size-full wp-image-403" /></a></p>
<p>Всё работает, всё замечательно. Если у Вас что-то не работает, скорее всего имеет место конфликт между скриптами. Отключите ненужные плагины. Знаю, что этот скрипт может не работать вместе с плагином <em>Contact Form</em>.</p>
<p>Теперь сделаем плейлист с множеством песен. Нам нужно, чтобы он отображался только в категории с песнями и вложенными в неё, исключая одиночные записи. Для этого в файле <em>header.php</em> после того, что мы уже вставили:</p>
<p><code>&lt;/script&gt;&lt;br /&gt;<br />
&lt;?php } } ?&gt;</code></p>
<p>добавим следующий код:</p>
<p><code>&lt;?php if (is_category(3) || in_category(3) &#038;& !is_home() &#038;& !is_single()) { ?&gt;&lt;br /&gt;<br />
&lt;script&gt;<br />
$(document).ready(function(){<br />
	var playItem = 0;<br />
	var myPlayList = [<br />
	&lt;?php $files = new WP_Query('cat=3&#038;showposts=-1&#038;orderby=title&#038;order=asc'); if($files-&gt;have_posts()) : ?&gt;<br />
&lt;?php while($files-&gt;have_posts()) : $files-&gt;the_post(); ?&gt;<br />
&lt;?php $file = get('file'); if ($file != "") { ?&gt;<br />
{name:"&lt;?php the_title(); ?&gt;",permalink:"&lt;?php the_permalink(); ?&gt;",singer:"&lt;?php echo get('singer'); ?&gt;",mp3:"&lt;?php echo get('file'); ?&gt;"},<br />
&lt;?php } ?&gt;<br />
&lt;?php endwhile; ?&gt;&lt;?php endif; ?&gt;<br />
	];<br />
	$("#jquery_jplayer").jPlayer({<br />
		ready: function() {<br />
			displayPlayList();<br />
			playListInit(true); // Parameter is a boolean for autoplay.<br />
			demoInstanceInfo($(this), $("#jplayer_info"));<br />
		},<br />
		oggSupport: false,<br />
		swfPath: "&lt;?php bloginfo('stylesheet_directory'); ?&gt;/js"<br />
	})<br />
	.jPlayerId("play", "player_play")<br />
	.jPlayerId("pause", "player_pause")<br />
	.jPlayerId("stop", "player_stop")<br />
	.jPlayerId("loadBar", "player_progress_load_bar")<br />
	.jPlayerId("playBar", "player_progress_play_bar")<br />
	.jPlayerId("volumeMin", "player_volume_min")<br />
	.jPlayerId("volumeMax", "player_volume_max")<br />
	.jPlayerId("volumeBar", "player_volume_bar")<br />
	.jPlayerId("volumeBarValue", "player_volume_bar_value")<br />
	.onProgressChange( function(loadPercent, playedPercentRelative, playedPercentAbsolute, playedTime, totalTime) {<br />
		var myPlayedTime = new Date(playedTime);<br />
		var ptMin = (myPlayedTime.getUTCMinutes() &lt; 10) ? "0" + myPlayedTime.getUTCMinutes() : myPlayedTime.getUTCMinutes();<br />
		var ptSec = (myPlayedTime.getUTCSeconds() &lt; 10) ? "0" + myPlayedTime.getUTCSeconds() : myPlayedTime.getUTCSeconds();<br />
		$("#play_time").text(ptMin+":"+ptSec);<br />
		var myTotalTime = new Date(totalTime);<br />
		var ttMin = (myTotalTime.getUTCMinutes() &lt; 10) ? "0" + myTotalTime.getUTCMinutes() : myTotalTime.getUTCMinutes();<br />
		var ttSec = (myTotalTime.getUTCSeconds() &lt; 10) ? "0" + myTotalTime.getUTCSeconds() : myTotalTime.getUTCSeconds();<br />
		$("#total_time").text(ttMin+":"+ttSec);<br />
	})<br />
	.onSoundComplete( function() {<br />
		playListNext();<br />
	});<br />
	$("#ctrl_prev").click( function() {<br />
		playListPrev();<br />
		return false;<br />
	});<br />
	$("#ctrl_next").click( function() {<br />
		playListNext();<br />
		return false;<br />
	});<br />
	function displayPlayList() {<br />
		for (i=0; i &lt; myPlayList.length; i++) {<br />
			$("#playlist_list ul").append("<br />
&lt;li id='playlist_item_"+i+"'&gt;"+ myPlayList[i].singer +" &ndash; "+ myPlayList[i].name +"&nbsp;&lt;a href='"+ myPlayList[i].permalink +"'&gt;→&lt;/a&gt;&lt;/li&gt;<br />
&lt;p&gt;");<br />
			$("#playlist_item_"+i).data( "index", i ).hover(<br />
				function() {<br />
					if (playItem != $(this).data("index")) {<br />
						$(this).addClass("playlist_hover");<br />
					}<br />
				},<br />
				function() {<br />
					$(this).removeClass("playlist_hover");<br />
				}<br />
			).click( function() {<br />
				var index = $(this).data("index");<br />
				if (playItem != index) {<br />
					playListChange( index );<br />
				} else {<br />
					$("#jquery_jplayer").play();<br />
				}<br />
			});<br />
		}<br />
	}<br />
	function playListInit(autoplay) {<br />
		if(autoplay) {<br />
			playListChange( playItem );<br />
		} else {<br />
			playListConfig( playItem );<br />
		}<br />
	}<br />
	function playListConfig( index ) {<br />
		$("#playlist_item_"+playItem).removeClass("playlist_current");<br />
		$("#playlist_item_"+index).addClass("playlist_current");<br />
		playItem = index;<br />
		$("#jquery_jplayer").setFile(myPlayList[playItem].mp3, myPlayList[playItem].ogg);<br />
	}<br />
	function playListChange( index ) {<br />
		playListConfig( index );<br />
		$("#jquery_jplayer").play();<br />
	}<br />
	function playListNext() {<br />
		var index = (playItem+1 &lt; myPlayList.length) ? playItem+1 : 0;<br />
		playListChange( index );<br />
	}<br />
	function playListPrev() {<br />
		var index = (playItem-1 &gt;= 0) ? playItem-1 : myPlayList.length-1;<br />
		playListChange( index );<br />
	}<br />
});<br />
&lt;/script&gt;&lt;br /&gt;<br />
&lt;?php  } ?&gt;</code></p>
<p>Затем в файле <em>archive.php</em> нам нужно вызвать плейлист, при этом мы заменим стандартное отображение записей в рубрике «Песни» на плеер. Если такого файла нет, то вносите изменения в <em>index.php</em></p>
<p>Для этого, если у вас установлена тема <em>default</em>, найдите строку:</p>
<p><code>&lt;div id="content" class="narrowcolumn" role="main"&gt;</code></p>
<p>после неё добавьте:</p>
<p><code>&lt;?php if (is_category(3) || in_category(3) &#038;& !is_home() &#038;& !is_single()) { ?&gt;&lt;br /&gt;<br />
&lt;?php /* If this is a category archive */ if (is_category()) { ?&gt;&lt;/p&gt;<br />
&lt;h2 class="pagetitle"&gt;&lt;?php printf(__('Archive for the &#8216;%s&#8217; Category', 'kubrick'), single_cat_title('', false)); ?&gt;&lt;/h2&gt;<br />
&lt;p&gt; 	  &lt;?php  } ?&gt;&lt;/p&gt;<br />
&lt;div id="jquery_jplayer"&gt;&lt;/div&gt;<br />
&lt;div id="player_container"&gt;<br />
&lt;ul id="player_controls"&gt;<br />
&lt;li id="player_play"&gt;play&lt;/li&gt;<br />
&lt;li id="player_pause"&gt;pause&lt;/li&gt;<br />
&lt;li id="player_stop"&gt;stop&lt;/li&gt;<br />
&lt;li id="player_volume_min"&gt;min volume&lt;/li&gt;<br />
&lt;li id="player_volume_max"&gt;max volume&lt;/li&gt;<br />
&lt;li id="ctrl_prev"&gt;previous&lt;/li&gt;<br />
&lt;li id="ctrl_next"&gt;next&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;div id="play_time"&gt;&lt;/div&gt;<br />
&lt;div id="total_time"&gt;&lt;/div&gt;<br />
&lt;div id="player_progress"&gt;<br />
&lt;div id="player_progress_load_bar"&gt;<br />
&lt;div id="player_progress_play_bar"&gt;&lt;/div&gt;<br />
&lt;/p&gt;&lt;/div&gt;<br />
&lt;/p&gt;&lt;/div&gt;<br />
&lt;div id="player_volume_bar"&gt;<br />
&lt;div id="player_volume_bar_value"&gt;&lt;/div&gt;<br />
&lt;/p&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div id="playlist_list"&gt;<br />
&lt;ul&gt;<br />
		&lt;!-- The function displayPlayList() uses this unordered list --&gt;<br />
	&lt;/ul&gt;<br />
&lt;/div&gt;<br />
&lt;p&gt;&lt;?php } else { ?&gt;</code></p>
<p>а перед кодом:</p>
<p><code>&lt;/div&gt;<br />
&lt;p&gt;&lt;?php get_sidebar(); ?&gt;</code></p>
<p>вставьте:</p>
<p><code>&lt;?php } ?&gt;</code></p>
<p>Теперь в файл <em>style.css</em> добавим стили. Как вы могли заметить, для плейлиста с множеством композиций мы будем использовать другие классы, чтобы всё было ровно, красиво и не перемешалось.</p>
<p><code>#player_container {&lt;br /&gt;<br />
	position: relative;&lt;br /&gt;<br />
	background-color:#eee;&lt;br /&gt;<br />
	width:418px;&lt;br /&gt;<br />
	height:80px;&lt;br /&gt;<br />
	border:1px solid #009be3;&lt;br /&gt;<br />
	margin-top:20px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_container  ul#player_controls {&lt;br /&gt;<br />
	list-style-type:none;&lt;br /&gt;<br />
	padding:0;&lt;br /&gt;<br />
	margin: 0;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_container  ul#player_controls li {&lt;br /&gt;<br />
	overflow:hidden;&lt;br /&gt;<br />
	text-indent:-9999px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_play,&lt;br /&gt;<br />
#player_pause {&lt;br /&gt;<br />
	display: block;&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:48px;&lt;br /&gt;<br />
	top:20px;&lt;br /&gt;<br />
	width:40px;&lt;br /&gt;<br />
	height:40px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_play {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") 0 0 no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_play.jqjp_hover {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -41px 0 no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_pause {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") 0 -42px no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_pause.jqjp_hover {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -41px -42px no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#ctrl_prev {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:20px;&lt;br /&gt;<br />
	top:26px;&lt;br /&gt;<br />
	background: url("images/spirites.jpg") 0 -112px no-repeat;&lt;br /&gt;<br />
	width:28px;&lt;br /&gt;<br />
	height:28px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#ctrl_prev:hover {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -29px -112px no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#ctrl_prev.disabled {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -58px -112px no-repeat;&lt;br /&gt;<br />
	cursor:default;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#ctrl_next {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:88px;&lt;br /&gt;<br />
	top:26px;&lt;br /&gt;<br />
	background: url("images/spirites.jpg") 0 -141px no-repeat;&lt;br /&gt;<br />
	width:28px;&lt;br /&gt;<br />
	height:28px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#ctrl_next:hover {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -29px -141px no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#ctrl_next.disabled {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -58px -141px no-repeat;&lt;br /&gt;<br />
	cursor:default;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_stop {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:126px;&lt;br /&gt;<br />
	top:26px;&lt;br /&gt;<br />
	background: url("images/spirites.jpg") 0 -83px no-repeat;&lt;br /&gt;<br />
	width:28px;&lt;br /&gt;<br />
	height:28px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_stop.jqjp_hover {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -29px -83px no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_progress {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:164px;&lt;br /&gt;<br />
	top:32px;&lt;br /&gt;<br />
	background-color: #eee;&lt;br /&gt;<br />
	width:122px;&lt;br /&gt;<br />
	height:15px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_progress_load_bar {&lt;br /&gt;<br />
	background: url("images/bar_load.gif")  top left repeat-x;&lt;br /&gt;<br />
	width:0px;&lt;br /&gt;<br />
	height:15px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_progress_load_bar.jqjp_buffer {&lt;br /&gt;<br />
	background: url("images/bar_buffer.gif")  top left repeat-x;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_progress_play_bar {&lt;br /&gt;<br />
	background: url("images/bar_play.gif") top left repeat-x ;&lt;br /&gt;<br />
	width:0px;&lt;br /&gt;<br />
	height:15px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_volume_min {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:296px;&lt;br /&gt;<br />
	top:32px;&lt;br /&gt;<br />
	background: url("images/spirites.jpg") 0 -170px no-repeat;&lt;br /&gt;<br />
	width:18px;&lt;br /&gt;<br />
	height:15px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_volume_max {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:368px;&lt;br /&gt;<br />
	top:32px;&lt;br /&gt;<br />
	background: url("images/spirites.jpg") 0 -186px no-repeat;&lt;br /&gt;<br />
	width:18px;&lt;br /&gt;<br />
	height:15px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_volume_min.jqjp_hover {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -19px -170px no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_volume_max.jqjp_hover {&lt;br /&gt;<br />
	background: url("images/spirites.jpg") -19px -186px no-repeat;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_volume_bar {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:314px;&lt;br /&gt;<br />
	top:37px;&lt;br /&gt;<br />
	background: url("images/volume_bar.gif") repeat-x top left;&lt;br /&gt;<br />
	width:46px;&lt;br /&gt;<br />
	height:5px;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#player_volume_bar_value {&lt;br /&gt;<br />
	background: url("images/volume_bar_value.gif") repeat-x top left;&lt;br /&gt;<br />
	width:0px;&lt;br /&gt;<br />
	height:5px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#play_time,&lt;br /&gt;<br />
#total_time {&lt;br /&gt;<br />
	position: absolute;&lt;br /&gt;<br />
	left:164px;&lt;br /&gt;<br />
	top:49px;&lt;br /&gt;<br />
	width:122px;&lt;br /&gt;<br />
	font-size:.8em;&lt;br /&gt;<br />
	font-style:oblique;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#total_time {&lt;br /&gt;<br />
	text-align: right;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#playlist_list {&lt;br /&gt;<br />
	width:418px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#playlist_list ul{&lt;br /&gt;<br />
	list-style-type:none;&lt;br /&gt;<br />
	padding:10px 20px 20px 20px;&lt;br /&gt;<br />
	margin:0 0 10px 0;&lt;br /&gt;<br />
	background-color:#ccc;&lt;br /&gt;<br />
	border:1px solid #009be3;&lt;br /&gt;<br />
	border-top:none;&lt;br /&gt;<br />
	width:378px;&lt;br /&gt;<br />
	font-size:.9em;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#playlist_list li{&lt;br /&gt;<br />
	padding:4px 0 4px 20px;&lt;br /&gt;<br />
	border-bottom:1px solid #eee;&lt;br /&gt;<br />
	cursor: pointer;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#playlist_list li a {&lt;br /&gt;<br />
	margin-left:10px;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#playlist_list li.playlist_current{&lt;br /&gt;<br />
	color:#0d88c1;&lt;br /&gt;<br />
	list-style-type:square;&lt;br /&gt;<br />
	list-style-position:inside;&lt;br /&gt;<br />
	padding-left:6px;&lt;br /&gt;<br />
	cursor: default;&lt;br /&gt;<br />
}&lt;br /&gt;<br />
#playlist_list li.playlist_hover {&lt;br /&gt;<br />
	color:#0d88c1;&lt;br /&gt;<br />
}</code></p>
<p style="text-align: center;"><img src="http://seogad.ru/wp-content/uploads/2009/11/7.jpg" alt="Пример плейлиста с множеством композиций на основе Wordpress и magic Fields" title="Пример плейлиста с множеством композиций на основе Wordpress и magic Fields" width="470" height="305" class="alignnone size-full wp-image-404" /></p>
<p>Вот такой получился плеер. Симпатично, не правда ли? Но будет ещё лучше, если мы вспомним о дополнительных полях «Альбом», «Исполнитель» и «Год» и сделаем удобную сортировку.</p>
<p>Сначала нам нужно получить от Wordpress все имеющиеся значения этих полей и показать эти значения на сайте в виде выпадающих списков.</p>
<p>В файле archive.php (или index.php, если такого нет) после:</p>
<p><code>&lt;?php /* If this is a category archive */ if (is_category()) { ?&gt;&lt;/p&gt;<br />
&lt;h2 class="pagetitle"&gt;&lt;?php printf(__('Archive for the &#8216;%s&#8217; Category', 'kubrick'), single_cat_title('', false)); ?&gt;&lt;/h2&gt;<br />
&lt;p&gt; 	  &lt;?php  } ?&gt;</code></p>
<p>добавляем:</p>
<p><code>&lt;br /&gt;<br />
&lt;form method="post" action=""&gt;<br />
&lt;p&gt;<br />
Исполнитель:&lt;/p&gt;<br />
&lt;select name="singer" &gt;<br />
&lt;option value=""&gt;&lt;/option&gt;<br />
&lt;p&gt;&lt;?php&lt;br /&gt;<br />
$listsingers = $wpdb-&gt;get_results("SELECT DISTINCT meta_value FROM $wpdb-&gt;postmeta&lt;br /&gt;<br />
	WHERE meta_key = 'singer' ORDER BY meta_value");&lt;br /&gt;<br />
foreach ($listsingers as $listsinger) {&lt;br /&gt;<br />
if ($listsinger-&gt;meta_value != '') {&lt;br /&gt;<br />
	$option = '&lt;br /&gt;<br />
&lt;option ';&lt;br /&gt;<br />
	if ($listsinger-&gt;meta_value == $_REQUEST["singer"]) {$option .= 'selected '; }&lt;br /&gt;<br />
	$option .= 'value="'.$listsinger-&gt;meta_value.'"&gt;';&lt;br /&gt;<br />
	$option .= $listsinger-&gt;meta_value;&lt;br /&gt;<br />
	$option .= '&lt;/option&gt;<br />
&lt;p&gt;';&lt;br /&gt;<br />
	echo $option;&lt;br /&gt;<br />
}} ?&gt;&lt;br /&gt;<br />
&lt;/select&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
Альбом:&lt;/p&gt;<br />
&lt;select name="album" &gt;<br />
&lt;option value=""&gt;&lt;/option&gt;<br />
&lt;p&gt;&lt;?php&lt;br /&gt;<br />
$listalbums = $wpdb-&gt;get_results("SELECT DISTINCT meta_value FROM $wpdb-&gt;postmeta&lt;br /&gt;<br />
	WHERE meta_key = 'album' ORDER BY meta_value");&lt;br /&gt;<br />
foreach ($listalbums as $listalbum) {&lt;br /&gt;<br />
if ($listalbum-&gt;meta_value != '') {&lt;br /&gt;<br />
	$option = '&lt;br /&gt;<br />
&lt;option ';&lt;br /&gt;<br />
	if ($listalbum-&gt;meta_value == $_REQUEST["album"]) {$option .= 'selected '; }&lt;br /&gt;<br />
	$option .= 'value="'.$listalbum-&gt;meta_value.'"&gt;';&lt;br /&gt;<br />
	$option .= $listalbum-&gt;meta_value;&lt;br /&gt;<br />
	$option .= '&lt;/option&gt;<br />
&lt;p&gt;';&lt;br /&gt;<br />
	echo $option;&lt;br /&gt;<br />
}} ?&gt;&lt;br /&gt;<br />
&lt;/select&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;<br />
Год:&lt;/p&gt;<br />
&lt;select name="year" &gt;<br />
&lt;option value=""&gt;&lt;/option&gt;<br />
&lt;p&gt;&lt;?php&lt;br /&gt;<br />
$listyears = $wpdb-&gt;get_results("SELECT DISTINCT meta_value FROM $wpdb-&gt;postmeta&lt;br /&gt;<br />
	WHERE meta_key = 'year' ORDER BY meta_value");&lt;br /&gt;<br />
foreach ($listyears as $listyear) {&lt;br /&gt;<br />
if ($listyear-&gt;meta_value != '') {&lt;br /&gt;<br />
	$option = '&lt;br /&gt;<br />
&lt;option ';&lt;br /&gt;<br />
	if ($listyear-&gt;meta_value == $_REQUEST["year"]) {$option .= 'selected '; }&lt;br /&gt;<br />
	$option .= 'value="'.$listyear-&gt;meta_value.'"&gt;';&lt;br /&gt;<br />
	$option .= $listyear-&gt;meta_value;&lt;br /&gt;<br />
	$option .= '&lt;/option&gt;<br />
&lt;p&gt;';&lt;br /&gt;<br />
	echo $option;&lt;br /&gt;<br />
}} ?&gt;&lt;br /&gt;<br />
&lt;/select&gt;<br />
&lt;/p&gt;<br />
&lt;input type="submit" value="Показать" class="s_submit" name="submit" /&gt;<br />
&lt;/form&gt;<br />
&lt;p&gt;</code></p>
<p>в файле header.php ищем:</p>
<p><code>&lt;?php $files = new WP_Query('cat=3&#038;showposts=-1&#038;orderby=title&#038;order=asc'); if($files-&gt;have_posts()) : ?&gt;</code></p>
<p>и заменяем на:</p>
<p><code>&lt;?php&lt;br /&gt;<br />
if (isset($_REQUEST["singer"])) { $paramsinger=$_REQUEST["singer"]; } else { $paramsinger=""; };&lt;br /&gt;<br />
if (isset($_REQUEST["album"])) { $paramalbum=$_REQUEST["album"]; } else { $paramalbum=""; };&lt;br /&gt;<br />
if (isset($_REQUEST["year"])) { $paramyear=$_REQUEST["year"]; } else { $paramyear=""; };&lt;br /&gt;<br />
if ($paramsinger != "" &#038;& $paramalbum != "" &#038;& $paramyear != "") {&lt;br /&gt;<br />
$mp3query = "cat=3&#038;showposts=-1&#038;orderby=title&#038;order=asc&#038;x_year=".$paramyear."&#038;x_album=".$paramalbum."&#038;x_singer=".$paramsinger."";&lt;br /&gt;<br />
} elseif ($paramsinger != "" &#038;& $paramalbum != "" &#038;& $paramyear == "") {&lt;br /&gt;<br />
$mp3query = "cat=3&#038;showposts=-1&#038;orderby=title&#038;order=asc&#038;x_album=".$paramalbum."&#038;x_singer=".$paramsinger."";&lt;br /&gt;<br />
} elseif ($paramsinger != "" &#038;& $paramalbum == "" &#038;& $paramyear != "") {&lt;br /&gt;<br />
$mp3query = "cat=3&#038;showposts=-1&#038;orderby=title&#038;order=asc&#038;x_year=".$paramyear."&#038;x_singer=".$paramsinger."";&lt;br /&gt;<br />
} elseif ($paramsinger == "" &#038;& $paramalbum != "" &#038;& $paramyear != "") {&lt;br /&gt;<br />
$mp3query = "cat=3&#038;showposts=-1&#038;orderby=title&#038;order=asc&#038;x_year=".$paramyear."&#038;x_album=".$paramalbum."";&lt;br /&gt;<br />
} elseif ($paramsinger != "" &#038;& $paramalbum == "" &#038;& $paramyear == "") {&lt;br /&gt;<br />
$mp3query = "cat=3&#038;showposts=-1&#038;orderby=title&#038;order=asc&#038;x_singer=".$paramsinger."";&lt;br /&gt;<br />
} elseif ($paramsinger == "" &#038;& $paramalbum != "" &#038;& $paramyear == "") {&lt;br /&gt;<br />
$mp3query = "cat=3&#038;showposts=-1&#038;orderby=title&#038;order=asc&#038;x_album=".$paramalbum."";&lt;br /&gt;<br />
} elseif ($paramsinger == "" &#038;& $paramalbum == "" &#038;& $paramyear != "") {&lt;br /&gt;<br />
$mp3query = "cat=3&#038;showposts=-1&#038;orderby=title&#038;order=asc&#038;x_year=".$paramyear."";&lt;br /&gt;<br />
} else {&lt;br /&gt;<br />
$mp3query = "cat=3&#038;showposts=-1&#038;orderby=title&#038;order=asc";&lt;br /&gt;<br />
}&lt;br /&gt;<br />
?&gt;&lt;br /&gt;<br />
	&lt;?php $files = new WP_Query($mp3query); if($files-&gt;have_posts()) : ?&gt;&lt;br /&gt;<br />
&lt;?php while($files-&gt;have_posts()) : $files-&gt;the_post(); ?&gt;</code></p>
<p>Смотрим, пробуем, радуемся.</p>
<p style="text-align: center;"><a href="http://wptest.ru/category/mp3/" target="_blank"><img src="http://seogad.ru/wp-content/uploads/2009/11/8.jpg" alt="Пример сортировки композиций по разным параметрам с помощью Wordpress, jPlayer и Magic Fields" title="Пример сортировки композиций по разным параметрам с помощью Wordpress, jPlayer и Magic Fields" width="470" height="390" class="alignnone size-full wp-image-405" /></a></p>
<p>Спасибо за внимание. Надеюсь, Вам понравился урок. Задавайте вопросы&nbsp;&mdash; с удовольствием отвечу и помогу, показывайте то, что получилось у Вас, делитесь советами.</p>
<p>Вы можете <a href="http://seogad.ru/wp-content/uploads/2009/11/seogad.ru_mp3katalog.zip">скачать изменённые мной файлы</a> вместе со скриптом и картинками. Их можно не боясь заливать поверх ваших файлов, только если у вас свежая установка Wordpress с активированным шаблоном &laquo;Default&raquo;.</p>
<p>Это статья является частью серии &laquo;Создание сайтов с Wordpress &#038; Magic Fields&raquo;. Вы можете ознакомиться с <a href="http://seogad.ru/cms/magic-fields-wordpress-plugin">презентацией плагина</a> и описанием его главных функций во вступительной статье.</p>
<p>Всего доброго.<br />
<a href="http://seogad.ru">Артём Савельев</a>.</p>


<div class="entry relatedpostsentry"><h3>Статьи по теме:</h3>
<ul>
		<li><a href="http://seogad.ru/cms/magicfields-photosite" rel="bookmark">Создание фотосайта на Wordpress с помощью плагина Magic Fields</a><!-- (20.7)--></li>
		<li><a href="http://seogad.ru/cms/magic-fields-wordpress-plugin" rel="bookmark">Плагин Magic Fields&nbsp;&mdash; создание дополнительных полей в Wordpress</a><!-- (12.3)--></li>
		<li><a href="http://seogad.ru/cms/wordpress-photosite" rel="bookmark">Создание фотосайта на Wordpress без использования плагинов</a><!-- (8.7)--></li>
	</ul></div>
]]></content:encoded>
			<wfw:commentRss>http://seogad.ru/cms/mp3-wordpress-magic-fields-jplayer/feed</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
	</channel>
</rss>

