Видео: Advanced Custom Fields — произвольные поля и настройки записи в WordPress (часть 1)
Тема статьи: Как добавить произвольные поля и настройки записи в WordPress? Зачем нужен плагин Advanced Custom Fields? Стоит ли покупать платные расширения для этого плагина?
Ответы на эти вопросы и многое другое о плагине Advanced Custom Fields вы найдете в видео ниже. а также в самой статье. Итак, поехали!
Зачем нужен Advanced Custom Fields?
Advanced Custom Fields (ACF) – это бесплатный плагин для добавления произвольных полей к записи, с удобным интерфейсом (в отличии от стандартных полей WP), широким выбором настроек, а также возможностью серьезного изменения с помощью плагинов.
Зачем нужны произвольные поля?
Стандартные настройки записи сильно ограничены. Вы можете использовать: заголовок, текст, миниатюру поста, вывести рубрики и остальное по мелочи. Но, к примеру, вам может понадобиться создать подобие социальной сети, где у каждого человека были бы свои параметры, такие как: рост, цвет глаз, цвет волос и т.д.
Пример социальной сети на движке WP
Стандартными средствами WP этого можно добиться, но это крайне неудобно. Обычному человеку сложно понять, как пользоваться этой штукой:
Стандартное произвольное поле WordPress
Хотелось бы понятные кнопочки загрузки и возможность выбрать рубрику. В итоге нам нужны дополнительные поля к стандартной записи и желательно чтобы были понятные людям. Как раз эту проблему и решает ACF.
Что умеет Advanced Custom Fields?
Вставка произвольных полейСписок всех его возможностей довольно велик, но в нем есть все самое необходимое, а именно:
- текст
- текстовая область
- номер
- пароль
- визуальный редактор WP
- загрузка изображений и файлов
- различные манипуляторы выбора
- различные взаимоотношения между объектами wp (рубрики, страницы, записи, пользователи)
- вставка Google карт
- выбор цвета и даты
Поля на любой вкус и цвет. А вот так это выглядит при редактировании самой записи.
Advanced Custom Fields в записи
Выбрать куда вставить полеВы можете вставить поля не только в запись, но и в другие виды таксономии, а именно:
- запись
- страница
- пользователь
- рубрики
- поля для определенного формата записи (что это?)
- прикрепление к определенному шаблону страницы
- и много другое
В этом плагине так же можно настроить, вывод других частей страницы редактирования. Например, можно отключить визуальный редактор, если на странице это не нужно. Или отключить стандартные произвольные поля wp, чтобы пользователь на них не отвлекался.
Также есть прочие настройки по-мелочи, вроде стиля самих настроек и приоритет полей по отношению к другим элементам.
Как использовать?
1. Для начала установите плагин стандартным способом (как установить плагин?). 2. Далее в правой колонке найдите вкладку «Произвольные поля» и нажмите на нее. 3. После установки у вас еще нет полей. Давайте создадим новою группу полей нажав на «Добавить новую»
установка плагина Advanced Custom Fields. Шаг 2 и 3
4. Назовите группу полей. Это имя будет в шапке настроек в записи. 5. Для добавления поля нажмите «Добавить поле», как ни странно :)
установка плагина Advanced Custom Fields. Шаг 4 и 5
6. Назовите поле, задайте описание. И обязательно укажите «Имя поля» на английском. Оно нам пригодиться в будущем. 7. Поиграйтесь с настройками плагина, выберите нужные поля или их сочетания. Вы можете менять поля местами, и удалять их. Все наглядно и понятно.
установка плагина Advanced Custom Fields. Шаг 6 и 7
8. Затем зайдите в таксономию, которую вы выбрали. В моем случае это запись. И наслаждайтесь результатом.
Все сохраняется, но поля не выводятся. Почему? Потому, что мы не добавили настройки полей в нашу тему. Тут вам понадобиться знание механики тем wordpress или помощь программиста. В принципе ничего дико сложного нет, но если вам не хочется тратить время, то можете обратиться к специалисту по wordpress.
Итак, далее работаем с темой. В нужное место вставим такой код.
Где «Имя поля» мы задали в пункте 6. О функции get_post_meta можно узнать тут:
Код выше подходит для простых полей типа текстовых. Для более вывода более сложных полей есть смысл обратиться к документации. Она, к сожалению, на английском. Так, что если у вас туго с этим языком будут проблемы.
Если вы хотите чтобы я более подробно разобрал тему именно установки и вывода настроек пишите об этом в комментариях!
Документация по ACF доступна на сайте разработчика. Ссылка ниже.
Плюсы и минусы бесплатной версии ACF
Так как плагин распространяется бесплатно, в этой части обзора мы будем рассматривать только базовую версию, без модификаций.
Плюсы- удобный интерфейс
- русский перевод
- много настроек
- бесплатно
- возможности расширения
- можно создавать свои поля (более подробно в документации)
- постоянные обновления
- нельзя клонировать поля непосредственно в записи (количество полей строго ограничено и слайдер в бесплатной версии не добавить)
- местоположение полей в теме строго фиксировано (нельзя вставить поле, куда нам захочется)
- техподдержка и документация на английском
- нужны базовые навыки программирования, чтобы плагин заработал
Выводы по бесплатной версии: даже бесплатного функционала вполне хватит для стандартных задач. Тем более у плагина на данный момент нет серьезных конкурентов (если вы нашли достойного конкурента обязательно пишите в комментариях).
Единственное, что раздражает, нет возможности добавить слайдер и повторяющиеся поля, но это есть в платных расширениях. О них мы и поговорим в следующей статье.
86 комментариев
Здраствуйте как можно скрыть название например цвет глаз: чтобы название выводилось только тогда когда это поле заполнено, так как у мня в разных категориях разные поля. Например есть 2 категории машины и люди, в категории люди свои названия глаза рост вес если я добавлю эти названия в шаблон вывода записи тогда же они будут отображатся и в категориях машины так нехотелось бы или просто создать для каждой категории свой шаблон вывода?
Как я вас понял, вам нужно чтобы поля выводились только в определенной категории, а в других нет. Если это надо реализовать в админке, то при создании полей ACF, внизу есть пункт Местоположение -> Отображать эту группу полей, если… там выберите нужную рубрику и поля будут показываться только в ней. Если же вы имели ввиду сам сайт, то тут вам поможет проверка на категорию if( is_category(#cat_id) )
Доброе время суток. Спасибо за урок! Вопрос: уже хотел купить плагины к acf и использовать acf для своих нужд, но наткнулся на такой плагин — wp-types.com/home/types-manage-post-types-taxonomy-and-custom-fields/ Вы не использовали его? Вроде из коробки там много всего.
Доброго, Олег! Рад, что урок оказался для вас полезным. По поводу плагина, который вас заинтересовал. Я у него увидел 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 будет передаваться заголовок со страницы. Это одно из решений. Уверен можно придумать что то еще.
Спасибо, я уже нашел решение. В CF7 есть встроенный функционал, специальные теги, http://contactform7.com/special-mail-tags/
Вот об этом не знал. Очень полезная информация!
У меня 4 произвольных поля в записи, но можно заполнять не все, а оставлять пустыми, как их тогда скрыть если они остаются незаполненными?
Вам нужно их скрыть в админке или на самом сайте?
На сайте. Сделал так но это временно надеюсь $ (‘.text-block’).eac h(fu nction() );
А обчную проверку через 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);
У меня так и не вывелось поле. Уже не знаю куда копать.
Подскажите, как можно производить арифметические операции с полями: вычислить среднее значение, кол-во статей с определенным значением