<?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/galereya/feed" rel="self" type="application/rss+xml" />
	<link>http://seogad.ru</link>
	<description>Бизнес, интернет, путешествия, творчество</description>
	<lastBuildDate>Mon, 06 Feb 2012 09:33:02 +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 без использования плагинов</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>
	</channel>
</rss>

