Видео: Advanced Custom Fields — произвольные поля и настройки записи в WordPress (часть 1)
Тема статьи: Как добавить произвольные поля и настройки записи в WordPress? Зачем нужен плагин Advanced Custom Fields? Стоит ли покупать платные расширения для этого плагина?
Ответы на эти вопросы и многое другое о плагине Advanced Custom Fields вы найдете в видео ниже. а также в самой статье. Итак, поехали!
Зачем нужен Advanced Custom Fields?
Advanced Custom Fields (ACF) – это бесплатный плагин для добавления произвольных полей к записи, с удобным интерфейсом (в отличии от стандартных полей WP), широким выбором настроек, а также возможностью серьезного изменения с помощью плагинов.
Скачать плагин с репозитория WordPress
Зачем нужны произвольные поля?
Стандартные настройки записи сильно ограничены. Вы можете использовать: заголовок, текст, миниатюру поста, вывести рубрики и остальное по мелочи. Но, к примеру, вам может понадобиться создать подобие социальной сети, где у каждого человека были бы свои параметры, такие как: рост, цвет глаз, цвет волос и т.д.
Стандартными средствами WP этого можно добиться, но это крайне неудобно. Обычному человеку сложно понять, как пользоваться этой штукой:
Хотелось бы понятные кнопочки загрузки и возможность выбрать рубрику. В итоге нам нужны дополнительные поля к стандартной записи и желательно чтобы были понятные людям. Как раз эту проблему и решает ACF.
Что умеет Advanced Custom Fields?
Вставка произвольных полей
Список всех его возможностей довольно велик, но в нем есть все самое необходимое, а именно:
- текст
- текстовая область
- номер
- пароль
- визуальный редактор WP
- загрузка изображений и файлов
- различные манипуляторы выбора
- различные взаимоотношения между объектами wp (рубрики, страницы, записи, пользователи)
- вставка Google карт
- выбор цвета и даты
Поля на любой вкус и цвет. А вот так это выглядит при редактировании самой записи.
Выбрать куда вставить поле
Вы можете вставить поля не только в запись, но и в другие виды таксономии, а именно:
- запись
- страница
- пользователь
- рубрики
- поля для определенного формата записи (что это?)
- прикрепление к определенному шаблону страницы
- и много другое
Настройка области редактирования записи
В этом плагине так же можно настроить, вывод других частей страницы редактирования. Например, можно отключить визуальный редактор, если на странице это не нужно. Или отключить стандартные произвольные поля wp, чтобы пользователь на них не отвлекался.
Также есть прочие настройки по-мелочи, вроде стиля самих настроек и приоритет полей по отношению к другим элементам.
Как использовать?
1. Для начала установите плагин стандартным способом (как установить плагин?).
2. Далее в правой колонке найдите вкладку «Произвольные поля» и нажмите на нее.
3. После установки у вас еще нет полей. Давайте создадим новою группу полей нажав на «Добавить новую»
4. Назовите группу полей. Это имя будет в шапке настроек в записи.
5. Для добавления поля нажмите «Добавить поле», как ни странно :)
6. Назовите поле, задайте описание. И обязательно укажите «Имя поля» на английском. Оно нам пригодиться в будущем.
7. Поиграйтесь с настройками плагина, выберите нужные поля или их сочетания. Вы можете менять поля местами, и удалять их. Все наглядно и понятно.
8. Затем зайдите в таксономию, которую вы выбрали. В моем случае это запись. И наслаждайтесь результатом.
Все сохраняется, но поля не выводятся. Почему? Потому, что мы не добавили настройки полей в нашу тему. Тут вам понадобиться знание механики тем wordpress или помощь программиста. В принципе ничего дико сложного нет, но если вам не хочется тратить время, то можете обратиться к специалисту по wordpress.
Итак, далее работаем с темой. В нужное место вставим такой код.
<?php echo get_post_meta($post->ID, ' Имя поля ', true); ?>
Где «Имя поля» мы задали в пункте 6. О функции get_post_meta можно узнать тут:
Код выше подходит для простых полей типа текстовых. Для более вывода более сложных полей есть смысл обратиться к документации. Она, к сожалению, на английском. Так, что если у вас туго с этим языком будут проблемы.
Если вы хотите чтобы я более подробно разобрал тему именно установки и вывода настроек пишите об этом в комментариях!
Документация по ACF доступна на сайте разработчика. Ссылка ниже.
Документация по Advanced Custom Fields
Плюсы и минусы бесплатной версии ACF
Так как плагин распространяется бесплатно, в этой части обзора мы будем рассматривать только базовую версию, без модификаций.
Плюсы
- удобный интерфейс
- русский перевод
- много настроек
- бесплатно
- возможности расширения
- можно создавать свои поля (более подробно в документации)
- постоянные обновления
Минусы
- нельзя клонировать поля непосредственно в записи (количество полей строго ограничено и слайдер в бесплатной версии не добавить)
- местоположение полей в теме строго фиксировано (нельзя вставить поле, куда нам захочется)
- техподдержка и документация на английском
- нужны базовые навыки программирования, чтобы плагин заработал
Выводы по бесплатной версии: даже бесплатного функционала вполне хватит для стандартных задач. Тем более у плагина на данный момент нет серьезных конкурентов (если вы нашли достойного конкурента обязательно пишите в комментариях).
Единственное, что раздражает, нет возможности добавить слайдер и повторяющиеся поля, но это есть в платных расширениях. О них мы и поговорим в следующей статье.
Стоит ли покупать платные дополнения для Advanced Custom Fields? (часть 2)
Здраствуйте как можно скрыть название например цвет глаз: чтобы название выводилось только тогда когда это поле заполнено, так как у мня в разных категориях разные поля. Например есть 2 категории машины и люди, в категории люди свои названия глаза рост вес если я добавлю эти названия в шаблон вывода записи тогда же они будут отображатся и в категориях машины так нехотелось бы
или просто создать для каждой категории свой шаблон вывода?
Как я вас понял, вам нужно чтобы поля выводились только в определенной категории, а в других нет.
Если это надо реализовать в админке, то при создании полей ACF, внизу есть пункт Местоположение -> Отображать эту группу полей, если… там выберите нужную рубрику и поля будут показываться только в ней.
Если же вы имели ввиду сам сайт, то тут вам поможет проверка на категорию if( is_category(#cat_id) ){ тут контент для категории #cat_id }
Доброе время суток.
Спасибо за урок!
Вопрос: уже хотел купить плагины к acf и использовать acf для своих нужд, но наткнулся на такой плагин — wp-types.com/home/types-manage-post-types-taxonomy-and-custom-fields/ Вы не использовали его? Вроде из коробки там много всего.
Доброго, Олег!
Рад, что урок оказался для вас полезным.
По поводу плагина, который вас заинтересовал. Я у него увидел 2 явных недостатка:
1) Отсутствие русского языка. В ACF все локализовано.
2) Не самый симпатичный интерфейс. Мне лично не нравится. Кому как.
Есть еще ряд подозрений. Есть ли повторяющиеся поля у этого плагина? Очень важно для слайдеров и галерей всяких.
Мое мнение. Возможностей ACF более, чем достаточно для практически любого проекта.
Единственное исключение когда я его не использовал, так это сайт, где было очень много фишек в самой статье (возможность ставить галереи, несколько видов цитат и т.д.). Тут лучше шорткодами. Хотя все от проекта зависит.
Не добавляет произвольное поле для рубрик, например как есть стандартное поле описание (), вернее поле создается, можно что-то написать, но в category.php если сделать вывод оно не отображается. Может для рубрики по другому нужно выводить? Все поля вывожу внутри цикла
На сколько я помню для рубрик мудренее все выводится. Там нужно указывать id рубрики, а не поста.
Попробуйте такую конструкцию использовать.
< ?php echo get_post_meta(get_query_var('cat') , ' Имя поля ', true); ?>
Безрезультатно, будем искать
$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 группы полей? как организовать проверку на заполненное поле в этой группе и выводить только заполненные? — не могу пока сообразить (((
Для проверки на заполненность на самом сайте используйте сл. конструкцию
< ?php if( get_post_meta($post->ID, ‘ Имя поля ‘, true) ) { Код для поля } ?>
Это понятно с данной конструкцией, но это неудобно и загружает сайт повторными проверками. Особенно когда полей 10 и более. Надо найти двойное вложение цикла — это будет лучше всего. Все равно спасибо
Доброго времени суток. Подскажите пожалуйста.Каким образом бесплатной версией можно вывести поле с формой заказа Contact Form 7. В идеале хочется, чтобы было поле, в которой вставляешь шорт код формы и оно отображается на странице. Для каждого поста свое. А максимум, что получается, так это вывод id формы. Спасибо за помощь!
Здравствуйте!
Создаете простое поле для CF7 -> в него прописываете шорткод, который он предостовляет -> в коде вывода прописываете < ?php echo do_shortcode( get_post_meta($post->ID, ‘ Имя поля ‘, true) ) ?> Вот и все. PROFIT!
Тога будет непонятно с какой страницы была отправлена форма. Как сделать чтобы в письме указывался заголовок записи с который была отправка формы?
Создайте в CF7 скрытое поле в которое через JS будет передаваться заголовок со страницы. Это одно из решений. Уверен можно придумать что то еще.
Спасибо, я уже нашел решение. В CF7 есть встроенный функционал, специальные теги,
http://contactform7.com/special-mail-tags/
Вот об этом не знал. Очень полезная информация!
У меня 4 произвольных поля в записи, но можно заполнять не все, а оставлять пустыми, как их тогда скрыть если они остаются незаполненными?
Вам нужно их скрыть в админке или на самом сайте?
На сайте.
Сделал так но это временно надеюсь
$ (‘.text-block’).eac h(fu nction() {
if ($ (t his).text() == «») {
$ (this).h ide();
}
});
А обчную проверку через php вы не побывали?
Например так
< ?php if( get_post_meta($post->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);
У меня так и не вывелось поле. Уже не знаю куда копать.
Подскажите, как можно производить арифметические операции с полями: вычислить среднее значение, кол-во статей с определенным значением
Как выделить жирным только имя произвольного поля?? При выделении выделяется все))ID, ‘work’, true) !== ») {echo «Деятельность: «.get_post_meta($post->ID, ‘work’, true).»»; }?>
Вот код
ID, ‘work’, true) !== ») {echo «Деятельность: «.get_post_meta($post->ID, ‘work’, true).»»; }?>
Добрый день. Создал несколько вкладок(табов) но они не отображаются( подскажите как отобразить?
Сама вкладка нужна для отображения в админке и разделения настроек по табам. Элемент «Вкладка» нельзя отобразить на сайте, он только для админки.
Как выводится на сайте не значение, а само поле (как в админке)? Например в посте отобразить select для выбора значения посетителем при редактировании поста с фронтенда.
Это придется прописывать ручками с помощью функций ACF. Документация Вам поможет http://www.advancedcustomfields.com/resources/
День добрый! А скажите, с его помощью можно делать выборку? После того как ввели данные, надо вывести всех с голубыми глазами ))
Вы можете фильтровать данные как захотите.
А не подскажите как это можно сделать? Просто с инглишом не особо дружу.
Спасибо, очень полезная статья. Похоже ACF — это то что мне нужно. Единственное, мне не нравится идея модификации темы.
Скажите, а шорткодом можно вытаскивать эти поля? Думаю это было бы удобнее.
Можно. Вот тут написано как http://www.advancedcustomfields.com/resources/shortcode/
купил этот плагин, обновил и русификация на половину слетела. Зачем вы писали о том что весь плагин всегда русифицирован? Я только ради этого его и купил.
купил этот плагин, обновил и русификация на половину слетела. Зачем вы писали о том что весь плагин всегда русифицирован? Я только ради этого его и купил.
У меня все хорошо работает. Вы обновляли через официальные источники?
Допустим, выводим произвольное поле с гарантией.
$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 нужно?
Подскажите пожалуйста.
Здравствуйте, Александр!
А вы выбрали в разделе «Местоположение» при каких условиях будет выводится форма? Если нет, то выберите и все должно заработать.
Дополнительно прописывать в functions нужно только, если Вы хотите создать глобальные настройки сайта.
Здравствуйте, установил все работает.спасибо
Но в статье я хочу сделать доп.поля Автор: и в нем текст в принципе нечего сложного,но мне вместо текста нужна ссылка, например Имя автора и она же ссылка.Подскажите как это сделать. в настройках делаю ссылка на страницу и вместо ссылки появляться номер статьи(((
Здравствуйте!
Все просто. Номер статьи — это на самом деле ID статьи.
Но, если Вы выбираете «ссылка на страницу», то должна появится именно ссылка.
Поставил на сайт WordPress плагин ACF PRO, с помощью его настроил вывод дополнительных полей в админке сайта,
сделал поле вывода названия записей со ссылками на них, загвостка возникла при выводе поля ссылки на материал в шаблоне сайта.
Вывел функцией:
<a href="">
ID, 'author', $single = true); ?>
Ссылка в шаблоне появляется и ведет на запись, но название аписи не выводит, а подставляет название
записи в которой это поле выводится. Далее вторая ошибка, при задании более одной ссылок в админке,
эта конструкция выводит одну ссылку визуально, а реально эта ссылка ведет на две страницы.
В общем она не работает. Подскажите, в чем тут ошибка и куда копать?
Облазил сайт производителя плагина, не нашёл подходящих функций.
Значение поля выводится функцией ACF
< ?php the_field('ваш_id'); ?>
Сейчас занимаемся переводом документации на великий и могучий. Возможно эта статья поможет Вам вывод значений для плагина ACF.
Не могу нормально код вставить и вроде
использовал :(
Здравствуйте! Спасибо за материал.
Не очень поняла одну вещь, можно ли создать произвольное поле следующего вида:
Для каждой Страницы появляется выпадушка (select) со списком других Страниц, которые являются дочерними для определенной страницы.
Если это невозможно, то можно ли для каждой Записи сделать произвольное поле в виде выпадушки со списком других Записей, которые входят в определенную категорию?
Надеюсь понятно описала)
Простите, со второй частью разобралась: что бы сделать выбор из Записей определенной категории:
Тип поля: Объект записи,
Объект записи: post
Фильтровать по таксономии: выбрать нужную Категорию.
З.Ы. Но, если вдруг есть решение для п.1 — буду очень рада (не очень хочется страницы в записи переносить)
У меня после установки этого расширения стал глючить визуальный редактор, в частности не вставляются якоря , после удаления всё заработало вновь. Никто не сталкивался не знаете как решить? Версии WordPress и advanced custom fields последние.
а как сделать что бы если поле не задано то скрыть блок в котором поле выводится?
Создал простейшее текстовое поле для ссылки. Только это поле не появляется, когда добавляешь новый материал. Появляется только при редактировании уже добавленных материалов.
В чем проблема, не подскажите?
Разобрался. Нужно быть внимательнее в рубриках с подкатегориями. Если например в рубрике — Игры — стоит галочка, а в дочерней ее категории — Гонки — не стоит, то при добавлении нужно указывать конкретно категорию, где была указана галочка. И не важно категория уже содержит эту подкатегорию.
Здравствуйте, подскажите пожалуйста. Вот на сайте WordPress хочу реализовать чтобы у каждого пользователя была своя страничка которая автоматически ему присваивалась после регистрации. К примеру я зарегистрировался и у меня появляется личный кабинет в котором я могу заполнить информацию о себе полностью вплоть до добавления фото и сохранить на этой же странице. Так же не понимаю все таки как добавлять произвольные поля для пользовательского заполнения и чтобы информация сохранялась на этой странице ну вот совсем не дружу я с php и ни где нормального прям материала нет чтобы с 0 изучить. Подскажите как это возможно реализовать? Уже весь интернет перерыл.Спасибо.
Здравствуйте, вероятно, вам легко будет помочь нам)
у меня на сайте произвольные поля «наезжают» друг на друга, а хотелось бы, чтобы они были четко друг под другом.
кусок кода
отображается на странице гурьбой(
поскажите пожалуйста какой нужен код, чтобы друг под другом отображались произвольные поля
days
long time for eksk
<?php if($t_snd_d == false) {
echo '’ . $t_frt_d . »;
} else {
echo ‘с ‘ . $t_frt_d . ‘ до ‘ . $t_snd_d . »;
} ?>
Почему бы тебе не сделать это через css? и выводить в echo сразу с тегами.
Вопрос ко всем:
Как-нибудь возможно распространить поле на подкатегории?
Предположим у меня есть категория и у неё куча подкатегорий.
Но если я присваиваю поле категории, то на подкатегории не распространяется. Приходится через правила вручную на каждую подкатегорию лепить правило.
В короткой новости не выводится, как сделать?
Подскажите, как вывести гугл карту? Точнее поле выводится, но вместо карты отображается только адрес и координаты. Что посоветуете?
Скажите, пожалуйста, а что означает фраза «Местоположение полей в теме строго фиксировано (нельзя вставить поле, куда нам захочется)»? Я не могу вставить определённое поле в нужное мне место шаблона? Или что?
как сделать чтобы картинка была больше в анонсе на старнице? а то картинка совсем маленькая выходит
Думаю достойный конкурент — не поддерживаемый более плагин Magic Fields v2 — более гибкий. С его помощью можно создавать не только кастомные поля, но и новые типы записей. В сочетании с полями — оружие типа «бомба». Хорошая документация, есть форум, правда на английском языке. Легко программируется, доступная документация, и главное — все бесплатно.
Ключевое слово не поддерживаемый. Посмотрел его на гитхабе и не нашел таких важных полей как повторитель, галерея и страница с опциями. А новые типы записей не сложно ручками прописать, ну или плагин для этого тоже есть. Как по мне, платные решения всегда будут лучше бесплатных, да и цена не большая, отбивается за 1 проект.
А как вывести абсолютно все поля? Дескать сделать фильтр и выборку.
Не работает, увы
Здравствуйте. Я долгое время пользовался произвольными полями, которые есть в вордпрессе по умолчанию. Решил попробовать этот плагин. И после установки весь блок с произвольными полями по умолчанию — пропал. Как теперь быть, ведь в них у меня масса информации…? Вся информация из стандартных произвольных полей по-прежнему выводится в статьях, но вот в админке блока с произвольными полями больше нет. А хотелось бы вернуть… Вообще я хотел бы использовать данный плагин только для одного кастомного типа записей. А он получается убрал произвольные поля вордпресса и из стандартных типов с записями.
Ты ужасен! Голос очень тихий, несвязная речь — ты хоть сценарий накидай на листе чтобы не запинаться. Ну а самое ужасное посторонние звуки с компа, я @#&#% оглох!!! Твой голос очень тихий а вот звуки прям орут. ДИЗ чувак, за видос диз, урок норм.
Я понимаю, что в 2019 уже другие стандарты качества на ютуб, но видео было снято в далеком 2014. И для того года пойдет, как по мне. Но ведь главное полезная информация, которую ты получил :) А так согласен надо будет переснять.
Хороший плагин, это можно получается любую структуру создать, а потом выводить, я уж начал подумывать об изучении фреймворков php, хотя все равно надо изучать какой либо фреймворк
Очень хороший. Сам использую для своих клиентов. Правда все самые вкусные штуки только в Pro версии.
А фреймворк дело полезное. Никогда не помешают лишние знания.
Отличная и подробная статья!)
Здравствуйте, Подскажите, всё настроил в плагине, но вот код ID, ‘ Имя поля ‘, true); ?> куда бы я не вставлял, не выводит информацию. может что то делаю не так?
Шаблон не стандартный.
Здравствуйте.
Пользуюсь бесплатной версией, перед переходом на PRO хочу понять следующее.
Есть такая задача: в разных постах нужно загрузить картинки для галереи, выставить им категории для галереи, картинки добавляются, все чудесно.
Можно ли каким-то чудесным образом на одной странице вывести ВСЕ эти картинки, желательно с учетом категорий (меток, тегов, чего угодно)?
Конечно можно и даже в бесплатной версии. Через WP_Query и фильтрацию по произвольным полям. Вот тут больше wp-kama.ru/function/wp_query#meta_query
А можно ли какой-то пример? Я не программист, довольно непросто разобраться в этих всех дебрях)
Пробовал через WP_Query и фильтрацию по произвольным полям, но в мета не выводится данных о содержащихся картинках. Вар_дамп ничего не выводит, только мету, но в ней ничего нет.
Решил своими силами. вывел все, что нужно с сортировкой по категориям.
Здравствуйте, подскажите пожалуйста как сделать так чтобы вывелось поле «видео» при создание поста с типом «видео» при редактирование все работает нормально ,но при создание записи поле не появляется
заранее спасибо!
3a0fc2
8hpm8d
cy3w7s