Wordpress do_shortcode 在一个小部件中工作,但不能在另一个小部件中工作
Wordpress do_shortcode work in one widget but not another
我有几个简码我不想在我的小部件中使用。我已将 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";
}
这是一个初步的答案,如果需要可以更新更多信息:
使用这个:
// 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
在所有其他 cass 中,开发人员可以手动应用它们,如果需要就需要
我有几个简码我不想在我的小部件中使用。我已将 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";
}
这是一个初步的答案,如果需要可以更新更多信息:
使用这个:
// 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
在所有其他 cass 中,开发人员可以手动应用它们,如果需要就需要