Произвольные поля (custom fields) в WordPress

Сначала расскажу о том, что такое произвольные поля (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="https://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/

17 комментариев

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ваш электронный адрес не будет опубликован.


*


5 + тринадцать =