• Я установил плагин спойлера, в виджете устанавливаю код, он не работает. Вычитал что в функшн пхп надо добавить код add_filter('widget_text', 'do_shortcode'); но добавив его ситуация не поменялась.
    Что я не так делаю?

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Так же не работает если устанавливать в шаблоне, хотя прочитал что должно работать так
    <?php echo do_shortcode(‘[spoiler]…[/spoiler]’); ?>
    По факту работает отлично только в теле статьи

    Впринципе там тоже самое написано, но не работает. Только не написано где вставлять.

    Только не написано где вставлять.

    Если речь идет о виджете, то он должен размещаться в файле sidebar.php (обычно так). Вам помогут доки http://codex.wordpress.org/Sidebars

    В sidebar.php не помогло. Не работает.

    В http://codex.wordpress.org/Function_Reference/do_shortcode написано:

    // Use shortcodes in text widgets.
    add_filter(‘widget_text’, ‘do_shortcode’);

    И с sidebar.php и в function.php добвлял — не работает.

    Попробуйте такой вариант:

    add_filter('widget_text','direct_execute_php',100);
    function direct_execute_php($html){
        if(strpos($html,"<"."?php")!==false){
             ob_start();
             eval("?".">".$html);
             $html=ob_get_contents();
             ob_end_clean();
        }
        return $html;
    }

    Добавьте этот код (разрешает исполнение php в виджете) в файл functions.php используемой темы.
    А в текстовый виджет вставляйте do_shortcode, прямо с тегами php, как в коде.

    и в function.php добвлял — не работает.

    Там echo делать вообще нечего, окромя внутри иной функции.

    Кстати, что за плагин используете? Наверняка у него есть своя документация.

    Плагин Advanced Spoiler.
    Добавил в function.php Ваш код. В виджете ввел
    <?php echo do_shortcode('[spoiler] xgfdggdfgdg [/spoiler]'); ?>
    Без echo не отобрадает ничего.
    Все равно он выводит просто текст: [spoiler] xgfdggdfgdg [/spoiler]
    Может надо просто другой плагин использовать.А то этот невкакую.
    Пробовал на страндартном шаблоне, тоже самое.

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

    Если вы об этом плагине http://wordpress.org/plugins/advanced-spoiler/, то его последнему релизу более двух лет. Я бы не рискнул использовать на продакшн сайте без предварительной и тщательной правки.

    Да, этот. Самый распространенный. Отключил плагин, вышла ощибка в виджите. Удалил код (который разрешает исполнение php в виджете) в файле functions.php. Все заработало, только без оформления

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Тема «Не работает шорткод в виджетах» закрыта для новых ответов.