Получение полей из группы ACF в виде переменных

#html #wordpress #advanced-custom-fields

#HTML #wordpress #дополнительно-пользовательские-поля

Вопрос:

Я пытаюсь получить значения из ACF group , но не могу получить их с помощью двух подходов:

Вот как мои ACF fields настроены для справки:

введите описание изображения здесь

Подход 1:

 <?php

$welcome_screen_content = get_field('welcome_screen_content'); // type: group

if( $welcome_screen_content ):
  $title = get_field('title');
endif;


echo $title; // prints nothing

?> 

Подход 2:

 <?php

if( have_rows('welcome_screen_content') ):
  while( have_rows('welcome_screen_content') ): the_row();

  $title = get_sub_field('title');

  echo $title; // prints nothing

  endwhile;
endif;

?> 

В моем шаблоне post title имеет значение:

введите описание изображения здесь

Так что не уверен, почему в обеих попытках эхо $title ничего не делает?

Ответ №1:

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

 $welcome_screen_content = get_field('welcome_screen_content'); // type: group

if( $welcome_screen_content ):
  $title = $welcome_screen_content['title'];
endif;
 

Подход 1 работает не так, как ожидалось, поскольку get_field('title') запрашивает ACF для получения поля на том же уровне, что и группа «welcome_screen_content».

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