Так же не работает если устанавливать в шаблоне, хотя прочитал что должно работать так
<?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. Все заработало, только без оформления