Привет всем, как и обещал сегодня опишу очень функциональный плагин для создания произвольных полей - Advanced Custom Fields WordPress. Долго чет не мог собраться с мыслями и вот наконец то пришла муза. Приступим.
Плагин Advanced Custom Fields на сегодня (20.08.15) имеет более 1 миллиона активных инсталов и это число продолжает упорно расти. Он предназначен для работы с произвольными полями у ВП, но в отличии от остальных плагинов умеет создавать не только custom field для постов / страниц, а и для других частей сайта.
ACF может создавать произвольные поля для:
Прикладываю скриншот справа для всех типов полей на тот случай если я что то пропустил.
Теперь вдумайтесь, для всех этих блоков произвольных полей Advanced Custom Fields WordPress может создавать данные такого типа:
Я же постараюсь описать только основные функции работы с произвольными полями, созданными этим плагином.
Любое поле можно получить используя функцию get_field($field_name, $post_id, $format_value):
$field_name - имя поля;
$post_id - идентификатор поста, страницы (по умолчанию это идентификатор поста / страницы, но можно указывать ID таксономии, пользователя, категории и так далее);
$format_value - (true / false) форматировать или нет полученные данные с базы.
Работать с функцией можно вот так:
<?php if($my_field=get_field("my_field")){echo $my_field;}?>
Перед этим конечно нужно создать поле с именем "my_field" и заполнить его через админку. Надо сразу уточнить, что никто не отменял работу функции для wordpress custom fields - get_post_meta, она описанная в указанной ссылке.
Единственный момент: если вы будете использовать get_post_meta вместо get_field для получения изображения, файла, даты, чекбокса - то у вас ничего не получится. Проблема в том что функция вордпреса не знает такого форматирования данных от сюда и проблемы. Для таких типов данных нужно использовать именно get_field.
В принципе, описанной выше функции достаточно для работы с любым полем advanced custom fields. Ей можно получать обычный отформатированный текст, координаты объектов, цвет, дату, взаимоотношение и много другое.
Получаем и выводим данные с произвольно поля "Редактор WYSIWYG" он же tinyMCE (если подключен), конечно перед этим нужно не забыть добавить такое произвольное поле:
<?php if($my_txt_tiny=get_field("my_txt_tiny")){echo apply_filters("the_content", $my_txt_tiny);}?>
Получаем произвольное изображение из advanced custom fields wordpress:
<?php if($my_img=get_field("my_img")){echo '<img src="'.$my_img.'"/>';}?>
При условии что у нас в базе хранится именно изображение как ссылка:
Получаем координаты объекта из поля jQuery google maps:
<?php $map=get_field("my_map"); ?>
тут важный момент, координаты будут в массиве, вот такое представление:
$map[lat]; // широта
$map[lng]; // долгота
Получаем текстовое поле для категории:
<?php if($CAT_TXT=get_field("CAT_TXT",get_category($cat))){ echo apply_filters("the_content", $CAT_TXT);}?>
переменная $cat у вашем макете должна быть автоматически заполненная, по этому вам достаточно создать текстовое поле для категории с именем "CAT_TXT", ну и не забыть заполнить его.
На этом пока что все, постараюсь в ближайшее время выложить еще несколько постов по работе с плагином advanced custom fields wordpress для создания произвольных полей у вордпресе. Следите за выходом новый записей и жмите лайк если эта статья была вам полезная:
P.S.: Плагин advanced custom fields полнофункциональное расширение для wordpress, которое позволяет создавать произвольные поля разной сложности, такие как:
Пробовал на двух сайта. Создал поле с редактором для одной страницы и вывожу приведенными в предыдущем сообщении кодами. Результат 0(
Обновлять базу запросов нет. Установил сегодня новую версию плагина.
Пробовал и на отдельном шаблоне и в общем и на странице.
И дело в том, что другое поле для вывода контента в категории - отлично выводиться
да я знаю. Вот так вывожу php if($desk_act=get_field("desk_act",get_category($cat))){ echo apply_filters("the_content", $desk_act);}
Дак что может быт не так. Почему это поле не выводиться php if($adress_timashevsk=get_field("adress_timashevsk")){echo $adress_timashevsk;} ????
Еще заметил что кода нет в коде страницы. Пустой див только
А если добавляю в блок контента страницы то почему то вот так выводиться -Как коментарий
Никак не могу сделать, чтобы область текста отображалась на странице записи. Пробовал по разному. В коде записи код вывода просто исчезает.
Всё-равно при просмотре кода страницы он отсутствует
В админке они есть.
Не понял ничего. Я в PHP не очень.
Я так указывал:
php if($my_field=get_field("my_field")){echo $my_field;}
Не могу понять. Ставлю код в начало страницы - нормально отображается. Ставлю в середину, туда, где нужно - не отображается.
Спасибо. Наконец-то заработало.
Здравствуйте!
Спасибо за интересную статью!
Меня интересует вопрос: можно ли решить такую проблему с помощью ACF: Подбор программы обучения по трем параметрам: возраст, предмет и цель (во всех случаях выбор из списка). В Выдаче - определенный набор программ. В битриксе это выглядит здесь: (-url-)
Или искать другой плагин для вордпресса?
Добрый день. Добавил текстовое поле в категории рубрик, сделал вывод:
Всё работает,всё выводится.
На сайте есть каталог товаров, сделанный на основе рубрик, хотел добавить дополнительный поля там, сделал всё по аналогии, но вывод не работает. Думаю, что изменить нужно что-то в самом выводе, а что не знаю. Подскажите в каком направлении копать. Заранее благодарен.
Да, вчера нашёл этот самый код и всё заработало. Спасибо большое
Интересно, по идее можно же менять таким образом контент в зависимости от входящего рефа? можете подсказать как?
Установил. В админке всё настроил. В файл single.php вставил код. Не отображается.
Реально крутой плагин, пользуюсь им уже больше года и все никак не нарадуюсь.
Плохо что дока на английском, на русском мало и приходится віискивать по частям.
Благодаря плагину advanced custom fields, wordpress стал более привлекательной системой для создания сайтов.
Установил плагин, создал поля, группы. Но они не отображаются на странице редактирования страницы и записи.
Тема своя, может что-то дописать в functions нужно?
Подскажите пожалуйста.
Нужно вывести значения из acf в теме newspaper. Пишите на почту плиз обсудим.
Здравствуйте!Мне необходимо настроить плагин advancedcustomfields для кулинарных рецептов или установить его с настройкой.И еще сколько у Вас будет стоить установить разметку
(-url-) для кулинарных рецептов.
Здравствуйте.
Вам можно скинуть ТЗ на оценку, нужно с помощью advanced custom fields wordpress расширить функционал сайта.
Ответьте плз. на почту, я вам в ответе вышлю ТЗ. Если цена устроить то можно было б поработать 🙂
У меня не выводится содерджание поля
версия плагина 5.8.0
wordpress 5.2.1
Создал поле для конкретной страницы.
Пробовал вывести поле разными способобами.
php wp_reset_query();
php if($adress_timashevsk=get_field("adress_timashevsk")){echo $adress_timashevsk;}
php if($adress_timashevsk=get_field("adress_timashevsk")){echo apply_filters("the_content", $adress_timashevsk);}
php the_field("adress_timashevsk")
НЕ выводиться. Подскажите в чем может быть дело?