我有几个短代码,我无法在我的小部件中使用。我已将add_filter('widget_text', 'do_shortcode');
添加到functions.php
(主题),当我使用默认WP" Text"小部件。但是当我在自己的小部件中尝试使用短代码(我自己开发它们)时,它们不能正常工作,它们会被渲染为常规内容。
我想我已经错过了渲染功能或类似的东西,但是几小时搜索和与WP文本源进行比较并不能让我在任何地方。有什么想法吗?
// Display text
if($instance['text']!="") {
echo "\n<p class=\"lead\">" . str_replace("\n", "</p><p class=\"lead\">", $instance['text']) . "</p>\n";
}
答案 0 :(得分:0)
这是一个试探性的答案,如果需要可以更新更多信息:
使用它:
// Display text
if($instance['text']!="") {
echo "\n<p class=\"lead\">" . str_replace("\n", "</p><p class=\"lead\">", do_shortcode($instance['text'])) . "</p>\n";
}
甚至可以应用所有widget_text
过滤器:
// Display text
if($instance['text']!="") {
echo "\n<p class=\"lead\">" . str_replace("\n", "</p><p class=\"lead\">", apply_filters('widget_text', $instance['text'])) . "</p>\n";
}
do_shortcode
和widget_text
过滤器不会自动应用于所有(自定义)窗口小部件,仅适用于某些默认WP窗口小部件,例如Text widget
,开发人员可以根据需要手动应用它们。需要