Шорткод
Оригинальное название: shortcode
Коротко
Код в квадратных скобках вроде [gallery] или [contact-form-7 id="5"], который автор вставляет в текст, а WordPress при выводе заменяет результатом работы PHP-функции.
Что такое «Шорткод»
Шорткоды появились в WordPress 2.5 как способ дать редактору «кнопку» сложной функции без знания HTML и PHP. Автор пишет в тексте короткий тег, плагин регистрирует для него обработчик, и при показе страницы на месте тега оказывается форма, слайдер, таблица цен или видео. В базе хранится сам тег, поэтому результат всегда актуален и пересчитывается при каждом выводе.
Пример: телефон филиала
add_shortcode( 'phone', function ( $atts ) {
$atts = shortcode_atts( array( 'city' => 'msk' ), $atts, 'phone' );
$phones = array( 'msk' => '+7 495 000-00-00', 'spb' => '+7 812 000-00-00' );
$num = $phones[ $atts['city'] ] ?? $phones['msk'];
return '<a href="tel:' . esc_attr( preg_replace( '/[^\d+]/', '', $num ) ) . '">'
. esc_html( $num ) . '</a>';
} );
В тексте страницы это выглядит как [phone city="spb"]. Функция shortcode_atts() подставляет значения по умолчанию и отбрасывает неизвестные атрибуты. Шорткод может быть и парным: [note]текст[/note] — тогда обработчик получает содержимое вторым аргументом.
Типичные ошибки
- echo вместо return. Выведенный через
echoHTML окажется над текстом записи, а не на месте шорткода. - Шорткоды от темы. После смены темы они перестают работать, и на страницах появляется сырой текст в скобках. Свои шорткоды правильнее размещать в плагине.
- Шорткод там, где его не обрабатывают. В заголовках, мета-полях и некоторых виджетах тег не заменится сам. В своём коде для этого вызывают
do_shortcode(). - Нужно показать тег как текст. Двойные скобки
[[phone]]выводят шорткод без обработки — удобно для инструкций.
Шорткод в блочном редакторе
В редакторе блоков для шорткода есть отдельный блок, и старые шорткоды продолжают работать. Но для новых функций правильнее делать динамический блок: он показывает результат прямо в редакторе и даёт настройки в боковой панели вместо атрибутов, которые надо помнить наизусть. Шорткоды остаются там, где важна совместимость, — например, формы Contact Form 7 до сих пор вставляются именно так. Как настроить такую форму, чтобы заявки доходили, разобрано в статье о форме обратной связи на WordPress.

