WordPress的短代码不叫
好吧,我已经创建了一个插件,现在想要提供应用程序的简码。
这是我在wp-content/plugins/my-plugin/my-plugin.php
WordPress的短代码不叫
<?php
/**
* Plugin Name: Latest Issue
* Author: Max Tsepkov
* Author URI: http://www.yogi.pw
*/
add_action('init', function() {
add_shortcode('my-plugin', function() {
// ... my code
return 'string';
});
});
唯一的文件我知道,插件被激活和init
回调被调用。
但是短码功能永远不会被调用。
我将文本[my-plugin]
添加到小部件,并且它也不会被替换。
我该怎么做?如何正确注册短代码?
原来,某些主题并未解析窗口小部件中的简码。
我们可以显式挂钩到主题过滤器并让它在小部件中运行短代码。
有关详细信息,请参阅https://wordpress.org/support/topic/how-to-make-shortcodes-work-in-a-widget
而且不需要挂钩进入init操作。此代码的工作原理:
<?php
/**
* Plugin Name: Latest Issue
* Author: Max Tsepkov
* Author URI: http://www.yogi.pw
*/
// Allow theme to parse shortcodes in widgets
add_filter('widget_text', 'do_shortcode');
add_shortcode('my-plugin', function() {
// ... my code
return 'string';
});
我猜你PHP至少是5.3,所以你可以让它在一个小部件中工作,你需要添加这段代码。
add_filter('widget_text', 'do_shortcode');
我测试了你的代码,它的工作原理。
我可以将此行放在插件中吗?我现在修补了主题。 – 2014-09-19 12:46:49
是的,这工作。 – 2014-09-19 12:52:40
@MaxTsepkov,是的。 – 2014-09-19 13:28:37
你有哪些版本的PHP? – 2014-09-19 12:09:13
您是否看过代码中的Shortcode API?此外,默认情况下,文本小部件不支持简码 – 2014-09-19 12:27:28