Сначала расскажу о том, что такое произвольные поля (custom fields) для WordPress и как их использовать, а затем приведу парочку примеров для применения. Дело в том, что в некоторых своих блогах я весьма успешно использую эту конструкцию, поэтому решил поделиться с вашим хорошим советом. Итак, произвольные поля вы можете найти в админке WordPress в одном из блоков под текстовым редактором для создания новых записей или страниц. Выглядит он примерно следующим образом:

Здесь слева располагается имя поля, а справа его значение. В качестве имени вы можете выбрать несколько вариантов по умолчанию, у меня там было title, description, keywords. Кстати после заполнения значений плагина All in One Seo Pack для увеличение трафика с поисковиков все значения (заголовок, описание и ключевые слова) копируются в эти произвольные поля. То ли они просто дублируются, то ли можно обходиться без вышеупомянутого плагина, хотя, конечно, тот выполняет еще ряд полезных функций.

Так вот, в WordPress custom fields можно также добавлять свои поля. Для этого кликаем по ссылке «Добавить новое», вводим имя (ключ) — используем для этого только английские символы, а справа указываем значение поля, после чего нажимаем на кнопку «Добавить произвольное поле». Например, введем в поле значения некоторый текст по типу «hello world» и зададим ему имя mytext.

Следующим шагом является вывод произвольного поля custom fields в нашем WordPress шаблоне. Для этого используем функцию get_post_meta($post_id, $key, $single). Переменные здесь обозначают:

  • post_id — ID поста, из которого берутся произвольные поля. Чаще всего использует значение текущей статьи, поэтому параметр равен $post->ID.
  • key — имя произвольного поля.
  • single — установлен в true, если требуется вывести единичный результат в виде строки. Значение false используется для отображения всего массива данных с произвольными полями. Чаще всего (в том числе и у нас в примере) используется true.

То есть заходим в шаблон WordPress блога, например, в файл единичного отображения поста single.php. Там после отображения текста статьи функцией the_content добавляем нужную строку для вывода только что созданного custom fields.

<div class="post">
<h1><?php the_title(); ?></h1>
<?php the_content('') ?>
<?php echo (get_post_meta($post->ID, 'mytext', true)); ?>
</div>

Функция echo выводит текст в php. После этого сохраняем шаблон и проверяем как работает наше произвольное поле — заходите на страницу и пост, где вы это поле добавили, ведь оно будет отображаться только там. Точно также для других статей потом придется заходить в текстовый редактор, но теперь уже не добавлять новое поле, а выбирать его из списка по имени.

Для чего же можно использовать произвольные поля (custom fields) в WordPress. Я могу назвать, по крайней мере, три разных варианта:

1. Вывод различного рода текстов для статей — автор, источник статьи, редакторы, используемая литература ну и любой другой текст, что теоретически может быть указан для поста. Зачем выводить текст, если можно добавить его в саму статью? — спросите вы. Все очень просто, с помощью произвольного поля вы сможете вывести его в любом месте шаблона, задав для него другое оформление. Иногда такие ситуации возникают.

2. Спонсорские ссылки и постовые. В последнее время все, кто заказывают постовые, хотят чтобы они транслировались на главную страницу блога, а у меня есть проекты, где там выводится только часть поста со ссылкой «Читать далее». В таком случае вы добавляете html код ссылки в custom fields.

После чего выводите его не только на странице с отдельным отображением поста, а еще и на главной. Для этого используется та же самая функция get_post_meta.

3. Последний вариант — это вывод картинки для поста. Иногда бывают ситуации, когда хочется сделать в шаблоне все красиво и аккуратно, чтобы для каждой статьи выводились картинки одинаковой ширины и высоты. Либо отображать рисунок, которого нет в тексте записи. Для этого также подойдут произвольные поля (custom fields) в WordPress. Для этого создаем поле с названием, например, mythumb, где в качестве значение указываем название изображения (его предварительно заливаем на фтп), а в шаблон добавляем код по типу:

<div class="entry">
<?php $mythumb = get_post_meta($post->ID,'mythumb', true); ?>
<img src="http://mysite.com/wp-content/uploads/ <? echo strtolower($mythumb); ?>.jpg" width="100" alt="" />
<?php the_excerpt(); ?>
</div>

Здесь, кстати, используется немного другой принцип, когда значение произвольного поля считывается сначала в переменную $mythumb, а затем уже подставляется в нужное место — можно делать и так, и так, разницы нет никакой.

Вот, в принципе, и все. На последок могу подсказать одну полезную статью h++p://www.sonika.ru/blog/wordpress/custom-fields-wordpress.htm о произвольных полях (custom fields) в WordPress, где приведены еще примеры использования этой функции. Если будут какие-то вопросы, пишите в комментариях.

h++p://tods-blog.com.ua/wordpress/custom-fields/

Категория: WordPress | Теги:

Комментарии к записи “Произвольные поля (custom fields) в WordPress”

  1. Alex | 27.02.2010

    Доброе время суток!Много прочитал про произвольные поля, но найти такой вкладки не смог. Может эта вкладка как-то включается? Нет её нигде. Включаю «редактировать страницу», прокручиваю вниз, как везде говорится, но ничего не нахожу.

  2. Макс | 27.02.2010

    Весьма странно… Сейчас глянул на старых версиях движка — они есть, но как и большинство элементов скрыты. Для того чтобы сделать эти поля доступными достаточно лишь нажать «+» справа от названия.

  3. Alex | 1.03.2010

    Справа от названия чего?

  4. Макс | 1.03.2010

    Справа от названия скрытых полей, в данном случае «произвольные поля».

    А вообще давайте начнем с начала…, во-первых скажите у Вас какая версия WP? И во-вторых зайдите на страницу создания записи (НЕ страницы) и внимательно просмотрите все имеющиеся блоки (в том числе и скрытые «+»)…

    P.S.: На картинках в этом посте показаны элементы новой админки, на старых версиях WP админка существенно отличается.

  5. Alex | 1.03.2010

    Кто бы подсказал: где посмотреть, какая у меня версия. Мой адрес: telephon.wordpress.com

  6. Alex | 2.03.2010

    Есть раздел «редактировать запись». Там нет ни +-сов, ни названия «произвольные поля». Такого названия я вообще нигде найти не могу. Может я вообще в другой программе?

  7. Александр | 15.09.2010

    Спасибо как раз то что я искал )))

  8. saffian | 2.02.2011

    Здравствуйте, а как custom fields можно включить в поиск. К примеру есть много рубрик и много городов, для городов есть custom field — city, а значение соответственно город. Так как вывести искомое в определенном городе? Т.е. форма для поиска — [что ищем] [выберете рубрику][выберете город]. Поиск по рубрикам работает, хотелось бы добавить поиск и по городам

  9. Макс | 2.02.2011

    saffian, с этим вопросом Вам лучше на WordPress форум обратиться…

  10. Игорь | 14.03.2011

    Поставил wordpress 3.1 — там нет произвольных полей.

  11. black2hole | 15.03.2011

    Тоже в недоумении искал эти поля, оказалось все просто, на любой странице, будь то page or post
    вверху экрана, справа, есть кнопка SCREEN OPTION
    там нужно поставить галочки, и все появится.

  12. Nikko | 15.04.2011

    Спасибо black2hole, твой комментарий мне был полезней, чем вся статья. Спасибо большое!

  13. Елена | 26.04.2011

    black2hole, спасибо огромное,если бы не Вы, долго бы я еще лазила в поисках «произвольного поля».

  14. Peter | 16.06.2011

    Спасибо black2hole

  15. burnasheff | 26.10.2011

    Вам не кажется что лучше в коде указать просто нежели чем прибавлять и папку uploads? Ведь файлы в папке uploads у многих отсортированы по месяцам и годам, что будете делать в таком случае? Править шаблон каждый раз? =)

    Если оставить просто переменную $mythumb то будет достаточно скопировать ссылку на изображение при загрузке его на ftp стандартным загрузчиком wp и вставить ссылку в custom field

  16. Seocdvig | 5.12.2011

    У меня в админке в верхней части экрана есть кнопка «настройка экрана». Заходите в нее и включаете галочкой произвольные поля. И все появится.

  17. Людмила | 3.07.2012

    Спасибо огромное black2hole.
    Все ночь читала статьи и искала эти произвольные поля, чтобы включить картинки в теме. И только ты объяснил, как включить эти поля.

Оставьте свой комментарий