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

Обновлено: 08.07.2024

Немного расскажу о самом коде, что я знаю и что я понял. А потом дам весь код целиком.

Создание блока в произвольных полях:

- для постов

Вставьте вот такой код:

- для страниц

Вставьте вот такой код:

Можно два способа объединить вот таким образом:

Создание HTML формы произвольных полей

В подсказке было указано, какую функцию нужно выводить для вызова HTML полей. Смотрите строку №8 , №15 верхнего кода:

Естественно вы можете дать свои названия для вызова функции. Но для примера я буду использовать именно эти.

Выводим HTML форму:

- для постов

Строка №7 - спрятанное поле name="atb_nonce" , нужно для проверки при сохранении данных.

- для страниц:

Строка №7 - спрятанное поле name="atb_nonce" , нужно для проверки при сохранении данных.
Также обратите внимание на строку №3 .

Функция get_post_meta должна стоять обязательно для получения значения произвольных полей. Естественно, сколько полей, столько должно быть и функций с правильно указанными параметрами.

Вот, например, в поле, если стоит значение

то, в функции должно быть вот так:

atb_sting_post = get_post_meta($post->ID, ' atb_sting_post ', 1); ?>

Сохраняем данные с полей

Готовый код:

В итоге у вас должно получиться вот так:

Как создать дополнительные поля на WordPress для статей и страниц

На сайте, чтобы вывести результат из дополнительного поля, пропишите вот такой код:


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

Custom fields - произвольные поля WordPress

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

Custom fields - произвольные поля WordPress

Почему вам может захотеться создать произвольное поле?

Например, вы можете захотеть использовать произвольные поле в том случае, если ваш сайт – это фитнес блог. Читателей такого блога может заинтересовать краткая информация о том, каких фитнес высот достиг автор за последнее время.

Custom fields - произвольные поля WordPress

Custom fields - произвольные поля WordPress

Другие примеры использования подобного поля:

Любая информация, которая, как вы думаете, будет интересна вашим читателям, и обогатить ваши записи, может быть использована для создания базового произвольного поля.

Новое произвольное поле создано, и с этого момента, оно будет доступно любому, кто создает новую запись на сайте. Это значит, что каждый раз, как вы создаете новую запись, вы можете очень просто добавить информацию о вашей последней тренировке, рассказать, что вы слушаете, или указать место вашей нынешней дислокации.

Custom fields - произвольные поля WordPress

Что делать с информацией?

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

Чтобы быть уверенным в том, что эти изменения не пропадут после очередного обновления темы, я рекомендую вам создать дочернюю тему существующего шаблона.

Custom fields - произвольные поля WordPress

Теперь нам нужно добавить такой кусок кода в то место, где мы хотим, чтоб отражалось произвольное поле и его содержимое:

Так как мы хотим, чтоб содержимого произвольное поля было частью нашей записи и отображалось как можно ближе к ее тексту, ищем вот такую строку

Custom fields - произвольные поля WordPress

Благодаря такому расположению кода, произвольное поле будет появляться под заголовком, перед текстом записи. Вы можете поэкспериментировать с местом расположения полей, и посмотреть, где бы вы хотели их выводить. По умолчанию произвольные поля отображаются в виде списка с маркерами-пульками, но внешний вид выводимых полей можно изменить, вновь отредактировав файлы темы.

Custom fields - произвольные поля WordPress

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

Custom fields - произвольные поля WordPress

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

С помощью плагина Advanced Custom Fields так же можно добавить обязательные для заполнения произвольные поля, что обязывает автора вводить значение поля, перед публикацией записи.

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

Custom fields - произвольные поля WordPress

Заключение

Большинство плагинов используют произвольные поля, и хочется надеяться, что данный ознакомительный пост помог вам понять, что они из себя представляют, а так же натолкнул на некоторые полезные идеи, как их можно использовать. Хотя, их использование подразумевает некоторое копание в коде, как почти всегда и бывает с WordPress, существует множество плагинов, которые позволяют вам начать работать с ними, не погружая рук в код.

Тема статьи: Как добавить произвольные поля и настройки записи в WordPress? Зачем нужен плагин Advanced Custom Fields? Стоит ли покупать платные расширения для этого плагина?

Ответы на эти вопросы и многое другое о плагине Advanced Custom Fields вы найдете в видео ниже. а также в самой статье. Итак, поехали!

Зачем нужен Advanced Custom Fields?

Advanced Custom Fields (ACF) – это бесплатный плагин для добавления произвольных полей к записи, с удобным интерфейсом (в отличии от стандартных полей WP), широким выбором настроек, а также возможностью серьезного изменения с помощью плагинов.

Зачем нужны произвольные поля?

Стандартные настройки записи сильно ограничены. Вы можете использовать: заголовок, текст, миниатюру поста, вывести рубрики и остальное по мелочи. Но, к примеру, вам может понадобиться создать подобие социальной сети, где у каждого человека были бы свои параметры, такие как: рост, цвет глаз, цвет волос и т.д.

Пример социальной сети на движке WP

Пример социальной сети на движке WP

Стандартными средствами WP этого можно добиться, но это крайне неудобно. Обычному человеку сложно понять, как пользоваться этой штукой:

Стандартное произвольное поле WordPress

Стандартное произвольное поле WordPress

Хотелось бы понятные кнопочки загрузки и возможность выбрать рубрику. В итоге нам нужны дополнительные поля к стандартной записи и желательно чтобы были понятные людям. Как раз эту проблему и решает ACF.

Что умеет Advanced Custom Fields?

Вставка произвольных полей

Список всех его возможностей довольно велик, но в нем есть все самое необходимое, а именно:

  • текст
  • текстовая область
  • номер
  • email
  • пароль
  • визуальный редактор WP
  • загрузка изображений и файлов
  • различные манипуляторы выбора
  • различные взаимоотношения между объектами wp (рубрики, страницы, записи, пользователи)
  • вставка Google карт
  • выбор цвета и даты

Поля на любой вкус и цвет. А вот так это выглядит при редактировании самой записи.

Advanced Custom Fields в записи

Advanced Custom Fields в записи

Выбрать куда вставить поле

Вы можете вставить поля не только в запись, но и в другие виды таксономии, а именно:

  • запись
  • страница
  • пользователь
  • рубрики
  • поля для определенного формата записи (что это?)
  • прикрепление к определенному шаблону страницы
  • и много другое

Настройка области редактирования записи

В этом плагине так же можно настроить, вывод других частей страницы редактирования. Например, можно отключить визуальный редактор, если на странице это не нужно. Или отключить стандартные произвольные поля wp, чтобы пользователь на них не отвлекался.

Также есть прочие настройки по-мелочи, вроде стиля самих настроек и приоритет полей по отношению к другим элементам.

Как использовать?

установка плагина Advanced Custom Fields. Шаг 2 и 3

установка плагина Advanced Custom Fields. Шаг 2 и 3

установка плагина Advanced Custom Fields. Шаг 4 и 5

установка плагина Advanced Custom Fields. Шаг 4 и 5

установка плагина Advanced Custom Fields. Шаг 6 и 7

установка плагина Advanced Custom Fields. Шаг 6 и 7

8. Затем зайдите в таксономию, которую вы выбрали. В моем случае это запись. И наслаждайтесь результатом.

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

Итак, далее работаем с темой. В нужное место вставим такой код.

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

Если вы хотите чтобы я более подробно разобрал тему именно установки и вывода настроек пишите об этом в комментариях!

Документация по ACF доступна на сайте разработчика. Ссылка ниже.

Плюсы и минусы бесплатной версии ACF

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

Плюсы

  • удобный интерфейс
  • русский перевод
  • много настроек
  • бесплатно
  • возможности расширения
  • можно создавать свои поля (более подробно в документации)
  • постоянные обновления

Минусы

  • нельзя клонировать поля непосредственно в записи (количество полей строго ограничено и слайдер в бесплатной версии не добавить)
  • местоположение полей в теме строго фиксировано (нельзя вставить поле, куда нам захочется)
  • техподдержка и документация на английском
  • нужны базовые навыки программирования, чтобы плагин заработал

Выводы по бесплатной версии: даже бесплатного функционала вполне хватит для стандартных задач. Тем более у плагина на данный момент нет серьезных конкурентов (если вы нашли достойного конкурента обязательно пишите в комментариях).

Единственное, что раздражает, нет возможности добавить слайдер и повторяющиеся поля, но это есть в платных расширениях. О них мы и поговорим в следующей статье.

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

Здраствуйте как можно скрыть название например цвет глаз: чтобы название выводилось только тогда когда это поле заполнено, так как у мня в разных категориях разные поля. Например есть 2 категории машины и люди, в категории люди свои названия глаза рост вес если я добавлю эти названия в шаблон вывода записи тогда же они будут отображатся и в категориях машины так нехотелось бы
или просто создать для каждой категории свой шаблон вывода?

Доброго, Олег!
Рад, что урок оказался для вас полезным.
По поводу плагина, который вас заинтересовал. Я у него увидел 2 явных недостатка:
1) Отсутствие русского языка. В ACF все локализовано.
2) Не самый симпатичный интерфейс. Мне лично не нравится. Кому как.
Есть еще ряд подозрений. Есть ли повторяющиеся поля у этого плагина? Очень важно для слайдеров и галерей всяких.
Мое мнение. Возможностей ACF более, чем достаточно для практически любого проекта.
Единственное исключение когда я его не использовал, так это сайт, где было очень много фишек в самой статье (возможность ставить галереи, несколько видов цитат и т.д.). Тут лучше шорткодами. Хотя все от проекта зависит.

Не добавляет произвольное поле для рубрик, например как есть стандартное поле описание (), вернее поле создается, можно что-то написать, но в category.php если сделать вывод оно не отображается. Может для рубрики по другому нужно выводить? Все поля вывожу внутри цикла

На сколько я помню для рубрик мудренее все выводится. Там нужно указывать id рубрики, а не поста.
Попробуйте такую конструкцию использовать.

Безрезультатно, будем искать

$term_id = get_query_var(‘cat’);
echo the_field(‘field’, ‘category_’.$term_id);

Промудился я с этими РУБРИКАМИ 4 часа, и все-таки сделал! Дерзайте готовый код друзья.

taxonomy;
$thumbnail = get_field(‘здесь пишем имя поля’, $queried_object);
echo ($thumbnail);
?>

Здравствуйте! Очень полезный урок, разобралась со многими вопросами. Но появилась проблема: у меня сделано 10 текстовых полей. Если использовать с циклом if, то приходится прописывать все поля отдельно по имени поля. Но если заполнены 5 полей из 10, то остается пустое место — что не есть гуд. А как прописать с циклом while или for или лучше использовать id группы полей? как организовать проверку на заполненное поле в этой группе и выводить только заполненные? — не могу пока сообразить (((

Для проверки на заполненность на самом сайте используйте сл. конструкцию
ID, ‘ Имя поля ‘, true) ) < Код для поля >?>

Это понятно с данной конструкцией, но это неудобно и загружает сайт повторными проверками. Особенно когда полей 10 и более. Надо найти двойное вложение цикла — это будет лучше всего. Все равно спасибо

Доброго времени суток. Подскажите пожалуйста.Каким образом бесплатной версией можно вывести поле с формой заказа Contact Form 7. В идеале хочется, чтобы было поле, в которой вставляешь шорт код формы и оно отображается на странице. Для каждого поста свое. А максимум, что получается, так это вывод id формы. Спасибо за помощь!

Здравствуйте!
Создаете простое поле для CF7 -> в него прописываете шорткод, который он предостовляет -> в коде вывода прописываете ID, ‘ Имя поля ‘, true) ) ?> Вот и все. PROFIT!

Тога будет непонятно с какой страницы была отправлена форма. Как сделать чтобы в письме указывался заголовок записи с который была отправка формы?

Создайте в CF7 скрытое поле в которое через JS будет передаваться заголовок со страницы. Это одно из решений. Уверен можно придумать что то еще.

Вот об этом не знал. Очень полезная информация!

У меня 4 произвольных поля в записи, но можно заполнять не все, а оставлять пустыми, как их тогда скрыть если они остаются незаполненными?

Вам нужно их скрыть в админке или на самом сайте?

А обчную проверку через php вы не побывали?
Например так
ID, ‘ Имя поля ‘, true) ) < echo get_post_meta($post->ID, ‘ Имя поля ‘, true); > ?>

Для записей(статей) круто работает, но непонятно можно ли добавить эти поля для рубрик(категорий), судя по всему нет.

Можно для любой таксономии добавить. В том числе и для рубрик.

И как же для рубрик добавить? Не нашел ответы ни в статье, ни в комментариях, ни в документации. В category.php выводит все поля для записи без проблем, что касается рубрики — можно добавить поле без проблем, но как его вывести? Обычный вывод тут не помогает. Явно ID задавать не вариант.

Рабочий вариант для вывода в рубрике (возможно кто-то упростит):

$queried_object = get_queried_object();
$taxonomy = $queried_object->taxonomy;
$term_id = $queried_object->term_id;

the_field(‘filed_name’, $taxonomy . ‘_’ . $term_id);

У меня так и не вывелось поле. Уже не знаю куда копать.

Подскажите, как можно производить арифметические операции с полями: вычислить среднее значение, кол-во статей с определенным значением

Добрый день. Создал несколько вкладок(табов) но они не отображаются( подскажите как отобразить?

Как выводится на сайте не значение, а само поле (как в админке)? Например в посте отобразить select для выбора значения посетителем при редактировании поста с фронтенда.

День добрый! А скажите, с его помощью можно делать выборку? После того как ввели данные, надо вывести всех с голубыми глазами ))

Вы можете фильтровать данные как захотите.

А не подскажите как это можно сделать? Просто с инглишом не особо дружу.

Спасибо, очень полезная статья. Похоже ACF — это то что мне нужно. Единственное, мне не нравится идея модификации темы.
Скажите, а шорткодом можно вытаскивать эти поля? Думаю это было бы удобнее.

купил этот плагин, обновил и русификация на половину слетела. Зачем вы писали о том что весь плагин всегда русифицирован? Я только ради этого его и купил.

купил этот плагин, обновил и русификация на половину слетела. Зачем вы писали о том что весь плагин всегда русифицирован? Я только ради этого его и купил.

У меня все хорошо работает. Вы обновляли через официальные источники?

Допустим, выводим произвольное поле с гарантией.

$val_val ) echo $val_val . '';
>
?>

Нужно сделать так, чтобы при гарантии “24 месяца” выводился “определённый текст”, а при гарантии “12 месяцев” выводился “другой текст”. То есть, если гарантия = (строго равно) “24 месяца”, выводится “текст1″. Если гарантия = “12 месяцев”, выводится “текст2″. Помогите, пожалуйста, разобраться. Заранее благодарю.

Так делайте проверку через if. Вы собственно весь алгоритм описали сами.

Я не совсем знаю синтаксиса, к сожалению. Помогите, пожалуйста.

Как то так
if( get_post_meta($post->ID, ' Имя поля ', true) =="24 месяца" ) :
echo "текст1";
elseif( get_post_meta($post->ID, ' Имя поля ', true) =="12 месяцев" ) :
echo "текст2";
endif;

Большое спасибо — всё работает! Успехов Вам!

Здравствуйте. Подскажите пожалуйста как сделать фильтр по этим полям? Сайт единоборств, там будут размещаться клубы, каждый может добавить свой, через доп поле с помощью этого модуля добавляется месторасположение, вот хотелось бы сделать фильтр с помощью которого можно было б посмотреть все клубы на определенной улице. В голове крутиться как реализовать на что то не до конца понимаю как. Прикручивал разные модули поиска, либо не фильтруют, либо выводят всё что содержит таблица mysql одного поля

Подскажите, как вывести значения произвольных полей списком на странице категории?

Здравствуйте.
Установил плагин, создал поля, группы. Но они не отображаются в админке на странице редактирования страницы и записи.

Тема своя, может что-то дописать в functions нужно?

Здравствуйте, установил все работает.спасибо
Но в статье я хочу сделать доп.поля Автор: и в нем текст в принципе нечего сложного,но мне вместо текста нужна ссылка, например Имя автора и она же ссылка.Подскажите как это сделать. в настройках делаю ссылка на страницу и вместо ссылки появляться номер статьи(((

Поставил на сайт WordPress плагин ACF PRO, с помощью его настроил вывод дополнительных полей в админке сайта,
сделал поле вывода названия записей со ссылками на них, загвостка возникла при выводе поля ссылки на материал в шаблоне сайта.

Ссылка в шаблоне появляется и ведет на запись, но название аписи не выводит, а подставляет название
записи в которой это поле выводится. Далее вторая ошибка, при задании более одной ссылок в админке,
эта конструкция выводит одну ссылку визуально, а реально эта ссылка ведет на две страницы.

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

Значение поля выводится функцией ACF
Сейчас занимаемся переводом документации на великий и могучий. Возможно эта статья поможет Вам вывод значений для плагина ACF.

Не могу нормально код вставить и вроде использовал :(

Простите, со второй частью разобралась: что бы сделать выбор из Записей определенной категории:
Тип поля: Объект записи,
Объект записи: post
Фильтровать по таксономии: выбрать нужную Категорию.
З.Ы. Но, если вдруг есть решение для п.1 — буду очень рада (не очень хочется страницы в записи переносить)

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

произвольные поля WordPres

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

custom fields WordPres

Следующим шагом является вывод произвольного поля 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.

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

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

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

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

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

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

Читайте также: