advanced custom fields не выводит поля – причины

Все очень просто, да вставляешь вот этот код

$value = get_field("price"); 
echo $value;

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

Основые причины почему ACF не выводит поля

1. Не правильно указано имя поля посмотрите изображение этой записи. чтобы убедится где назначается имя поля.
2. В основном get_field требует два значения чтобы вывести дополнительное поле – название поля и его id, в случае, если id не может получить самостоятельно.
если у вас цикл, то нужно внутрь цикла вставлять get_field(“price”); попробуйте костыль:

 
get_field("price", 123);

 

где 123 id нужного поста и если результат заработает – то проблема  была в получении id.

 

Вывод полей для категорий в шаблоне

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

$queried_object = get_queried_object(); // объект
$taxonomy = $queried_object->taxonomy;// таксономия (category или другое)
$term_id = $queried_object->term_id;  // ID

$cat_field =   get_field('content_post_show', $taxonomy . '_' . $term_id); // значение вашего поля
echo "string. ". $cat_field;

где content_post_show – это имя поля, которое вам необходимо вывести.

Для категорий товаров woocommerce

// вывод дополнительного поля  в шаблоне arcive-product.php (woocommerce)
$queried_object = get_queried_object();  
$taxonomy = $queried_object->taxonomy;
$term_id = $queried_object->term_id;// получили  id категории
echo get_field('category_links','product_cat_'.$term_id);

*category_links  это имя вашего поля

 

Записать полей в базу данных

<?php update_field($selector, $value, $post_id); ?>

переменная(тип переменной)

$selector  имя или ключ поля
$value значение для сохранения
$post_id  Конкретный идентификатор поста. По умолчанию используется текущий идентификатор  поста, (не обязательно). Это также может быть вариантом / категории/ пользователя/ и т. Д.

 

Вывод нажатых чекбоксов

$field = get_field_object('object');  
$choices = $field['value']; // то что нажато 
foreach ($choices as $value => $label) {
	$label  = $field['choices'][$label];// таким вот образом я получаю значения 
	echo $label."<br>";
	echo $value ."<br>"; // не обязательно
}

не забывайте, object  – это имя вашего поля.  и оно выводится,  толко тогда, когда нажат чекбокс,  при редактировании записи/страницы, иными словами, если чекбоксы пустые они не выведутся. переменная $label не будет существовать.

Поделись с друзьями:
advanced custom fields не выводит поля – причины: 5 комментариев
  1. Jemik:

    Спасибо, ваш способ Вывод полей для категорий в шаблоне меня спас, уже многое перепробовал, но не получал необходимы данные!

  2. Виталий:

    ребята подскажите, если сталкивались.
    Когда добавляю новую запись – в админке ввожу все вводные в custom поля но на frond and ничего не отображается.

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

    Не могу разгадать причину.

  3. Алексей:

    Здравствуйте! Что это может быть: несколько дней или недель назад все работало, произвольные поля выводились кодом и вдруг перестали? что могло сломаться?

    1. allwp:

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

  4. Denis:

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

Добавить комментарий

* Все комментарии проходят модерацию