Частый запрос: вывести шорткод (слайдер, форма, карта) из шаблона, но чтобы контент-менеджер менял его в админке, а не в PHP. Связка простая: поле ACF + do_shortcode().
Функция WordPress do_shortcode() исполняет любой валидный shortcode из строки. Если зашить код в шаблон намертво, правки = деплой и риск синтаксических ошибок. Через Advanced Custom Fields отдаёте редактору текстовое поле, он вставляет шорткод как в контенте записи.
Настройка ACF
- создайте поле типа Text (или Textarea, если шорткод длинный);
- имя поля, например
revolution_slider_shortcode; - привяжите к нужным шаблонам/типам записей;
- в админке вставьте шорткод целиком, вида
[rev_slider alias="home"].
Вывод в шаблоне
В PHP-шаблоне темы (или через хук) читаете поле и прогоняете через do_shortcode:
<?php
$revslider_shortcode = get_field( 'revolution_slider_shortcode' );
if ( $revslider_shortcode ) {
echo do_shortcode( $revslider_shortcode );
}
?>
Идея: get_field() забирает строку из ACF, do_shortcode() превращает её в HTML шорткода, echo выводит результат. Без echo (или return в нужном контексте) на странице ничего не появится.
На что обратить внимание
- пустой вывод: проверяйте, что поле заполнено у нужного поста/опций и что ACF подключён до вызова;
- для options page:
get_field( 'field_name', 'option' ); - не доверяйте произвольный shortcode незнакомым пользователям — это выполнение кода плагинов;
- в block theme можно обернуть логику в блок «Код»/паттерн или вынести в маленький плагин/mu-plugin, если правите не child theme.
Итого: одно текстовое поле ACF + echo do_shortcode( get_field( ... ) ) — рабочий способ отдать шорткоды редакторам без правок шаблонов.