Вывести значения полей Advanced Custom Fields из любой страницы

Задача: Вывести в любом месте сайта значение поля ACF из любой страницы сайта, где уже есть заполненные поля.

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

На одном сайте для своего клиента недавно мне потребовалось реализовать вывод большого списка представительств этой компании в разных городах и странах. Кажется вроде, ничего сложного, можно реализовать при помощи обычных записей в рубрике, но мне захотелось полной кастомизации, чтобы можно было делать сортировку через Repeater, выводить список Repeater разделённый постраничной навигацией.

Звучит неплохо, но я всегда задавался вопросом: «А как же мне вытянуть значения полей ACF из какой-либо страницы?». Ответ нашёлся, именно решением этой проблемы я и хочу с Вами сегодня поделиться.


Получить значение из текущей записи

В этом примере показано, как загрузить значение поля «text_field» из текущего сообщения.

$value = get_field( "text_field" );

Получить значение из определенного поста

В этом примере показано, как загрузить значение поля «text_field» из записи с ID = 123.

$value = get_field( "text_field", 123 );

Получить значение из разных объектов

В этом примере показано множество значений $post_id для получения значения из сообщения, пользователя, термина и опции.

$post_id = false; // current post
$post_id = 1; // post ID = 1
$post_id = "user_2"; // user ID = 2
$post_id = "category_3"; // category term ID = 3
$post_id = "event_4"; // event (custom taxonomy) term ID = 4
$post_id = "option"; // options page
$post_id = "options"; // same as above
$value = get_field( 'my_field', $post_id );

Получить значение без форматирования
$image = get_field('image', false, false);
ВКонтакте
Facebook
WhatsApp
Telegram
Автор статьи
Выгодный хостинг
Хостинг Beget

Выгодная партнёрская программа! Верните на свой счёт 20% с любой суммы от оплаты хостинга Beget!

Новое в блоге

Смотрите также

Мессенджеры

Написать сообщение

Отправлено!

Мы свяжемся с вами в ближайшее время.