Когда вставляю шорткод прямо в шаблон, всегда оборачиваю его в do_shortcode().
Если вдруг не заводится, обычно дело банально в кавычках.
Если мне нужно вывести форму CF7, слайдер или другой шорткод прямо из PHP,
я делаю так:
<?php echo do_shortcode( '[ваш_шорткод]' ); ?>
Без do_shortcode() WordPress просто напечатает
[contact-form-7 …] как обычный текст. Никакой магии не случится.
Что делать, если шорткод не работает
Я в таких случаях не усложняю: ставлю двойные кавычки снаружи, и всё обычно сразу оживает:
<?php echo do_shortcode( "[ваш_шорткод]" ); ?>
Смысл простой: внешние и внутренние кавычки не должны быть одинаковыми.
Если и там и там одинарные (или везде двойные), PHP обрывает строку раньше времени.
| Снаружи (PHP) | Внутри (шорткод) | Результат |
|---|---|---|
| Одинарные ‘…’ | Двойные «…» или вообще без атрибутов | Работает |
| Двойные «…» | Одинарные ‘…’ | Работает |
| Одинарные | Одинарные | Падает по кавычкам |
| Двойные | Двойные | Падает по кавычкам |
Как делаю я.
Просто меняю кавычки на одном уровне: или снаружи, или внутри.
Главное — не ставить одинаковые везде подряд. Чаще всего хватает поменять внешние ‘ на «.
Комментарии
Пока нет комментариев — можете написать первый.