Как разделять произвольные поля в wordpress


Дорогие друзья, сегодня хотел бы поговорить о произвольных полях (Custom Fields) в WordPress. Те, кто ведёт блог под управлением WordPress, наверняка знают о том, что в произвольные поля можно добавлять свою дополнительную информацию. Но если вы никогда не слышали о произвольных полях (или, может быть, слышали но ещё не использовали их), то рекомендую обратить на них внимание. Если вкратце, то произвольные поля это дополнительные поля, которые автор поста может добавить сам к публикуемой статье. По существу, произвольные поля позволят вам добавить дополнительные данные к публикуемым статьям в WordPress, которые возможно больше некуда вставить по умолчанию. Другими словами, наряду с такими вещами как заголовок, вступление, и категории, вы можете добавить свои произвольные поля, такие как, ссылки, цену, описание и т.д. Например, часто произвольные поля в WordPress используют для миниатюр, но вы можете легко добавить и свои поля.


Итак, рассмотрим два небольших примера, как можно использовать произвольные поля. Это не значит, что вы должны делать изменения точно описанным сценариям. Цель сегодняшней статьи, это дать представление, как можно использовать произвольные поля.

Сценарий 1

Предположим у вас есть пост, где вы описываете своё портфолио, и вы хотите показать пару эскизов. Давайте добавим 4 изображения к нашему посту через произвольные поля. Итак, как добавить эскизы к посту через произвольные поля?

Шаг 1

Добавляем новое произвольное поле.

Назовём его Images, добавив в поле Nameназвание Images. В поле Valueдобавим ссылки на изображения. Здесь очень важно помнить, что ссылки на изображения не должны идти друг за другом, а каждая ссылка была на отдельной строке. Таким образом, каждая ссылка должна заканчиваться символом перевода каретки. В дальнейшем мы будем разбирать этот список именно на основе перевода строки. Итак, каждая ссылка должна быть на новой строке.

Шаг2.

Теперь в папке с вашей темой (я предполагаю, что у вас есть общее представление об изменении темы в WordPress), откройте файл single.php.  Найдите цикл вывода самого поста, обычно он выглядит приблизительно так:

<?php while (have_posts()) : the_post(); ?>
...
<?php the_content(''); ?>
...
<?php endwhile; ?>

Как видите это вывод содержимого поста, после директивы the_content(''), вставляем наш код для вывода изображений.

<?php
$images = get_post_meta($post->ID,‘Images’);
$images = nl2br($images[0]);
$images = explode(‘<br />’,$images);
?>

Этот код использует для получения пользовательского ключа функцию WordPress - get_post_meta. Затем он преобразует переносы строк в HTML-теги, используя функцию PHP - nl2br (). Затем мы создаем массив с помощью функции explode () , при этом используем в качестве разделителя тег <br>. Если теперь мы добавим к коду функцию PHP - print_r (), то мы сможем увидеть массив как таковой:

print_r($images);
//Увидим список на экране
/*
Array 
( 
[0] => http://localhost/path/to/file/blue.jpg 
[1] => http://localhost/path/to/file/yellow.jpg 
[2] => http://localhost/path/to/file/red.jpg 
[3] => http://localhost/path/to/file/green.jpg 
) 
*/

Шаг 3

Как вы уже догадались, мы сделали самое главное, и теперь нам осталось только оформить правильно вывод наших изображений. Для этого просто добавьте следующий код ниже предыдущих:

foreach($images as $src)
{ echo "<img src=\"".trim($src)."\" />";
}

И вот теперь мы получаем нужный нам результат. Замечу только, что функция TRIM () просто удаляет лишние пробелы, если они вдруг попадут в переменную изображения. Смотрим как это выглядит.

Сценарий 2

Теперь немного усложним задачу. Допустим вы хотите добавить к изображениям ещё какие либо атрибуты. Предположим, что вы хотите создать интернет-магазин, чтобы продать свои работы. Тогда вам нужно добавить как минимум следующие пункты:

  • Товар
  • Изображениетовара
  • Ценатовара
  • Описание товара
Шаг 1

Здесь мы используем тот же прием, что и в описанном выше сценарии 1. Создадим пару пользовательских полей с ключевыми названиями ItemInfo и введём свою информацию в том же порядке, как мы делали до этого.

Шаг 2

Теперь в папке с вашей темой откройте файл single.php. И вставьте следующий код

<?php
		$items = get_post_meta($post->ID, 'ItemInfo');
		foreach($items as $item) {
			$item = nl2br($item);
			list($name,$src,$price,$desc) = explode('<br />',$item);
			echo "<div class=\"item\">";
			echo "<h2>$name</h2>";
			echo "<img src=\"".trim($src)."\" />";
			echo "<br />Цена: $price";
			echo "<br />Описание: $desc";
			echo "</div><br />";
		}
?>

Теперь эти поля будут выводиться следующим образом

Надеюсь вы уловили идею использования произвольных полей в WordPress. Применений здесь может быть масса, в зависимости от ваших потребностей.

 

Дополнительная литература (на английском языке):

  • http://codex.wordpress.org/Function_Reference/get_post_meta
  • http://php.net/manual/en/function.nl2br.php
  • http://uk2.php.net/manual/en/function.trim.php
  • http://php.net/manual/en/function.list.php
  • http://wefunction.com/2008/10/tutorial-creating-custom-write-panels-in-wordpress/
  • http://www.tutorial9.net/web-tutorials/add-thumbnails-to-wordpress-with-custom-fields/
Реклама
Поделиться
Качественные премиум темы и шаблоны для Вашего сайта:

Смотреть полный каталог качественных тем и шаблонов

Здесь Вы можете выбрать из более чем 46 000 готовых дизайнов. Шаблоны сайтов + установка + хостинг + персонализация + поисковая оптимизация + копирайтинг — все эти услуги вы всегда можете получить от профессионалов мирового уровня!

Добавить коментарий

17 − два =