Сегодня хочу поделиться готовым решением, которое упрощает работу с кастомными полями ACF (Advanced Custom Fields) и его форком SCF (Secure Custom Fields). Речь пойдёт об универсальном шорткоде, который позволяет легко выводить любые поля в Elementor, Bricks Builder и даже в метатегах Yoast SEO!
Что делает этот код?
Код создаёт шорткод [scf], который может:
- Выводить значения ACF/SCF полей в любом месте сайта
- Работать с полями из страницы настроек (options page)
- Автоматически подставлять значения из текущей записи
- Работать в Yoast SEO для динамических метатегов
// Поле SCF через шорткод
// Шорткод [scf field="field_name"]
// Берёт значение из ACF options page,
// если там пусто — из текущей записи
// ==============================
if ( ! function_exists( 'scf_inline_shortcode' ) ) {
function scf_inline_shortcode( $atts ) {
$atts = shortcode_atts(
array(
'field' => '',
'post_id' => 0,
),
$atts
);
if ( empty( $atts['field'] ) ) {
return '';
}
// 1) пробуем взять со страницы настроек (options page)
$value = get_field( $atts['field'], 'option' );
// 2) если в настройках пусто – берём из записи
if ( $value === null || $value === '' ) {
$post_id = $atts['post_id'] ? (int) $atts['post_id'] : get_the_ID();
if ( $post_id ) {
$value = get_field( $atts['field'], $post_id );
}
}
return $value ? esc_html( $value ) : '';
}
add_shortcode( 'scf', 'scf_inline_shortcode' );
}
// ==============================
// Включаем шорткоды в полях Yoast SEO
// (Title, Meta Description, Open Graph, Twitter)
// ==============================
// Title и Meta Description
add_filter( 'wpseo_title', 'do_shortcode' );
add_filter( 'wpseo_metadesc', 'do_shortcode' );
// Open Graph (для соцсетей / превью ссылок)
add_filter( 'wpseo_opengraph_title', 'do_shortcode' );
add_filter( 'wpseo_opengraph_desc', 'do_shortcode' );
// Twitter Card
add_filter( 'wpseo_twitter_title', 'do_shortcode' );
add_filter( 'wpseo_twitter_description', 'do_shortcode' );
Как использовать?
1. В Elementor/Bricks Builder:
Просто добавьте текстовый виджет и используйте шорткод:
[scf field="ваше_поле"]
2. Разные варианты использования:
<!-- Просто поле -->
[scf field="price"]
<!-- Поле из определённой записи -->
[scf field="price" post_id="123"]
<!-- В Yoast SEO метатегах (в настройках Yoast) -->
%%title%% | Купить за [scf field="price"] руб.
Ключевые преимущества
1. Универсальность
- Работает с ACF и SCF (используется один и тот же синтаксис
get_field()) - Поддерживает все типы полей (текст, число, изображение, ссылка и т.д.)
2. Умный порядок выборки
Код сначала проверяет страницу настроек ('option'), потом текущую запись. Это удобно, когда у вас есть:
- Общие настройки сайта (телефон, email)
- Переопределение для конкретных страниц
3. Безопасность
Используется esc_html() для экранирования вывода – защита от XSS-атак.
4. Интеграция с Yoast SEO
Строки add_filter('wpseo_title', 'do_shortcode') позволяют использовать шорткоды в:
- Заголовках страниц
- Мета-описаниях
- Open Graph тегах
Установка и использование
- Добавьте код в
functions.phpдочерней темы или через Code Snippets - Создайте ACF/SCF поля в админке WordPress
- Начните использовать шорткоды в любом месте
Почему это удобно?
- Не нужно писать PHP-код для каждого поля
- Единый синтаксис для всех полей и страниц
- Работает в визуальных билдерах (Elementor, Bricks)
- Динамические метатеги в Yoast SEO
Этот небольшой сниппет стал для меня настоящим спасением при работе с клиентскими сайтами. Больше не нужно создавать десятки кастомных шорткодов для каждого поля – один универсальный код решает все задачи!
Попробуйте и вы! Если есть вопросы или идеи по улучшению – пишите в комментариях!




