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

5 сент. 2014 г., 22:45:21
Просмотры: 69K
Голосов: 10

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

// [tag1] -> Некоторый длинный текст
function shortcode_example1() {
    return 'Некоторый длинный текст';
}
add_shortcode('tag1', 'shortcode_example1');

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

[tag1]

Однако шорткод не выполняется, и вывод просто показывает "[tag1]". Можете помочь?

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

2
Комментарии

Ваш код работает у меня на WP 3.9.2, как в плагине, так и в functions.php. Другие шорткоды работают нормально?

Gabriel Gabriel
6 сент. 2014 г. 02:29:14

Я также подтверждаю, что этот шорткод работает корректно. Может быть, что-то удалило фильтр do_shortcode из хука the_content? Попробуйте переключиться на стандартную тему (использует ли ваша тема the_content()?) и отключить все плагины. Затем включайте их по одному, чтобы найти возможный конфликт.

helgatheviking helgatheviking
6 сент. 2014 г. 23:27:20
Все ответы на вопрос 4
4
33

Вот несколько моментов, которые стоит проверить:

  • Первое: Активирован ли ваш плагин.

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

  • Третье: Нет ли в вашем файле плагина ошибок, которые деактивируют плагин после включения. Включили ли вы режим отладки (debug). Один из участников сайта создал отличный плагин для отладки под названием Debug Objects, доступный для скачивания на wordpress.org

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

  • Пятое: Как предположил @helgatheviking, не применяете ли вы фильтры к the_content(), которые могут вызывать такое поведение.

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

7 сент. 2014 г. 11:36:30
Комментарии

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

Martin Pfeffer Martin Pfeffer
13 мар. 2017 г. 05:02:53

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

Self Designs Self Designs
15 мая 2018 г. 13:55:32

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

hal hal
4 янв. 2019 г. 15:08:53

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

Brian Stinar Brian Stinar
8 нояб. 2019 г. 09:46:40
1
-1

добавьте это

    add_filter('the_content', 'do_shortcode');
22 окт. 2018 г. 15:48:17
Комментарии

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

Howdy_McGee Howdy_McGee
22 окт. 2018 г. 17:22:36
0
-1

У меня была такая же проблема:

Оказалось, что мне не хватало

<?php 

в начале файла.

Надеюсь, это поможет.

12 авг. 2022 г. 19:33:50
1
-6

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

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

8 сент. 2014 г. 23:07:49
Комментарии

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

Self Designs Self Designs
15 мая 2018 г. 13:52:06