get_fields()
Возвращает массив со всеми значениями пользовательских полей для определенной записи, пользователя, комментария, термина и так далее.
Функция не очень элегантна и тратит много памяти PHP / SQL-запросов, если вы не используете все значения.
Хуков нет.
Возвращает
(Массив)
. Ассоциативный массив (field name => field value).
Использование
get_fields( $post_id, $format_value );
- $post_id(mixed)
- ID записи (пользователя, рубрики и .д.), для которой нужно получить метаполя.
По умолчанию: false (ID текущей записи в цикле) - $format_value(bool)
- Применять ли форматирование, указанное в настройках поля.
По умолчанию: true
Примеры
#1 Получим значения метаполей для текущей записи
Отобразим для текущей записи в виде списка все метаполя (имена полей и их значения).
$fields = get_fields(); if( $fields ): ?> <ul> <?php foreach( $fields as $name => $value ): ?> <li><b><?php echo $name; ?></b> <?php echo $value; ?></li> <?php endforeach; ?> </ul> <?php endif; ?>
#2 Получим значения для разных сущностей
// Получим значения всех метаполей текущей записи. $fields = get_fields(); // Получим значения всех метаполей записи с ID = 1. $post_fields = get_fields( 1 ); // Получим значения всех метаполей пользователя с ID = 2. $user_fields = get_fields( 'user_2' ); // Получим значения всех метаполей термина с ID = 3. $term_fields = get_fields( 'term_3' ); // Получим значения всех метаполей термина с таксономией category и ID = 3. $term_fields = get_fields( 'category_3' ); // Получим значения всех метаполей комментария с ID = 4. $comment_fields = get_fields( 'comment_4' ); // Получим значения всех метаполей всех страниц опций, созданных ACF. $option_fields = get_fields( 'options' ); // Или так. $option_fields = get_fields( 'option' );
#3 Получим значения метаполей для текущей записи без форматирования
В этом примере показано, как получить все поля (имя и значение) без какого-либо форматирования.
Форматирование относится к тому, как изменяются значения после загрузки из базы данных. Например, значение поля изображения сохраняется в базе данных как просто ID вложения, но может быть возвращено в виде URL-адреса, в зависимости от настроек поля.
В некоторых случаях может быть полезно убедиться, что возвращается только необработанное значение, независимо от настроек поля. Для этого мы используем параметр $format_value
.
$fields = get_fields( 123, false );
Список изменений
С версии 3.6 | Введена. |