Шорткод плагина WordPress не работает
У меня есть шорткод, определенный в плагине следующим образом:
// [tag1] -> Некоторый длинный текст
function shortcode_example1() {
return 'Некоторый длинный текст';
}
add_shortcode('tag1', 'shortcode_example1');
Теперь на странице wordpress я пытаюсь использовать плагин следующим образом:
[tag1]
Однако шорткод не выполняется, и вывод просто показывает "[tag1]". Можете помочь?
Спасибо за помощь.

Вот несколько моментов, которые стоит проверить:
Первое: Активирован ли ваш плагин.
Второе: Находится ли ваш шорткод в основном файле плагина. Если этот код находится в другом файле внутри вашего плагина, убедитесь, что вы подключили этот дополнительный файл в главный файл плагина.
Третье: Нет ли в вашем файле плагина ошибок, которые деактивируют плагин после включения. Включили ли вы режим отладки (debug). Один из участников сайта создал отличный плагин для отладки под названием Debug Objects, доступный для скачивания на wordpress.org
Четвертое: Попробуйте переместить ваш шорткод в файл functions.php вашей темы, чтобы убедиться, что шорткод действительно работает. Если он не работает внутри темы, проблема может быть в самой теме.
Пятое: Как предположил @helgatheviking, не применяете ли вы фильтры к
the_content()
, которые могут вызывать такое поведение.Шестое: Если все вышеперечисленное не помогло, деактивируйте все плагины, переключитесь на стандартную тему и проверьте снова. Если проблема сохраняется, обновите/переустановите WordPress, так как это может быть поврежденный файл ядра.

Я выполнил контрольный список: 1=готово!, 2=да!, 3=нет, 4=ок, 5=нет, 6-> заработало! После переключения моей локальной версии WordPress (для тестирования) с темы 'Sydney Theme' на 'Twenty Fourteen' шорткод стал отображаться. Похоже, что есть темы, которые препятствуют отображению шорткодов в записях.

Спасибо, Pieter, за этот контрольный список. Оказалось, что я неправильно подключил свой файл... упс. Теперь всё работает :)

Я выполнил всё следующее, но всё равно не работает. У меня свежая установка WordPress (5.0.2) с кодом, добавленным в файл functions.php. Но когда я вставляю [shortcodename] на страницу, он воспринимается как текст. В чём проблема? Я использую стандартную тему: Twenty Sixteen.

Это очень полезный чеклист. Единственное, что я бы добавил — пункт семь: убедитесь, что ваш редактор страниц не портит шорткоды, как это сделал мой: [plc_get_matter_detail_per_contact contacts=6c131-<wbr />668f13139e matters=6c620185-6211-1331-a642-668f6b7eea9e] Этот "полезный" WordBreak доставил мне немало проблем. Спасибо, редактор страниц...

Почему? Что это делает? Где они могут это добавить? Пожалуйста, отредактируйте ваш ответ, используя ссылку редактирования выше, и добавьте больше информации о том, как это помогает решить проблему.

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