Шорткод плагинов Wordpress не работает

9

У меня есть шорткод, определенный в плагине следующим образом:

// [tag1] -> Some Longer Text
function shortcode_example1() {
    return 'Some Longer Text';
}
add_shortcode('tag1', 'shortcode_example1');

Теперь на странице WordPress я пытаюсь получить доступ к плагину следующим образом:

[tag1]

Однако шорткод не запускается и выводится просто «[tag1]». Вы можете помочь?

Спасибо за вашу помощь.

santhanamk
источник
Ваш код работает для меня на WP 3.9.2, либо в плагине, либо в functions.php. Другие шорткоды работают нормально?
Габриэль
1
Я также подтверждаю, что этот шорткод работает нормально. Что-то сняло do_shortcodeфильтр с the_contentкрючка? Попробуйте переключиться на тему по умолчанию (ваша тема использует the_content()?) И отключить все плагины. Затем включите их 1 на 1, чтобы найти потенциальный конфликт.
Helgatheviking

Ответы:

31

Есть несколько вещей, чтобы проверить здесь

  • Один: ваш плагин активирован.

  • Два: Ваш шорткод в вашем основном файле плагина. Если этот код находится в другом файле внутри вашего плагина, вы обязательно включили этот дополнительный файл в свой основной файл плагина?

  • Три: нет ли в вашем файле плагина каких-либо ошибок, которые деактивируют ваш плагин после активации. Вы установили для debug значение true. У одного из участников сайта есть отличный плагин для отладки, доступный для загрузки на wordpress.org, который называется Debug Objects.

  • Четвертое: попробуйте переместить свой шорткод в файл functions.php вашей темы, чтобы убедиться, что он действительно работает. Если это не работает внутри вашей темы, проблема может быть в самой вашей теме

  • Пять: как подсказывает @helgatheviking, вы не фильтруете the_content()каким-либо образом, который может вызвать такое поведение?

  • Шесть: если все вышеперечисленное не сработало, деактивируйте все плагины, переключитесь на связанную тему и перепроверьте. Если проблема не устранена, обновите / переустановите Wordpress, поскольку это может быть поврежденный основной файл, а затем

Питер Гусен
источник
Я сделал контрольный список: 1 = проверить !, 2 = да !, 3 = нет, 4 = хорошо, 5 = нет, 6-> сработало! После переключения моего локального wp (для тестирования) с «Sydney Theme» на «Twenty Fourteen» показывается SC. Похоже, есть темы, которые мешают показывать СЦ в постах.
Мартин Пфеффер
Спасибо, Питер, за этот контрольный список. Оказывается, я не включил свой файл правильно ... woops. Теперь работает нормально :)
Шахматный байт
Я сделал все следующее, и все равно это не работает. У меня установлена ​​новая версия WordPress (5.0.2) с кодом, добавленным в файл functions.php. Но когда я помещаю [shortcodename] на страницу, он рассматривается как текст. Что не так? Я использую тему по умолчанию: Двадцать шестнадцать.
гал
Это очень полезный контрольный список. Единственное, что я хотел бы добавить, это семерка: убедитесь, что ваш редактор страниц не использует ваш шорткод, как у меня: [plc_get_matter_detail_per_contact contacts = 6c131- <wbr /> 668f13139e значения = 6c620185-6211-1331-a642-668f6b7eea9e ] Этот «полезный» WordBreak на некоторое время напортачил. Спасибо редактору страниц ...
Брайан Стинар
-1

Добавь это

    add_filter('the_content', 'do_shortcode');
alegut
источник
1
Почему? Что это делает? Куда они добавят это? Пожалуйста, отредактируйте свой ответ, используя ссылку редактирования выше, и добавьте дополнительную информацию о том, как это поможет решить проблему.
Howdy_McGee
-4

Спасибо за ваши ответы. После дальнейшего изучения я обнаружил, что файл плагина, в котором был определен мой шорткод, показывался как «неактивный». Как только я переместил свои определения шорткода в активный файл, все стало работать. Я надеюсь, что это будет полезно для любого, кто столкнется с этим в будущем.

Еще раз спасибо!

santhanamk
источник
Пожалуйста, примите правильный ответ вместо своего.
шахматный байт