我一直在研究插件,我一直在尝试在注册为激活挂钩的函数中添加一个短代码。我知道正在调用该函数,因为如果我在函数内部添加一个echo语句,WordPress会在发送标题后抱怨接收输入,但短代码不会显示。但是,如果我将add_shortcode
移到函数外部,那么一切正常。
关于出了什么问题的任何想法?
这有效:
<?php
/*
Plugin Name: Testing
*/
function short_code($atts) {
return "This is a test";
}
function activate() {
add_shortcode('testing', 'short_code');
}
//register_activation_hook(__FILE__, 'activate');
add_shortcode('testing', 'short_code');
这不是:
<?php
/*
Plugin Name: Testing
*/
function short_code($atts) {
return "This is a test";
}
function activate() {
add_shortcode('testing', 'short_code');
}
register_activation_hook(__FILE__, 'activate');
//add_shortcode('testing', 'short_code');
答案 0 :(得分:2)
register_activation_hook
仅触发一次 - 当插件被激活时。因此,您的短代码仅在激活时被注册一次,然后不再可用。
您应该在第一个示例中使用add_shortcode
。 add_shortcode
本身就是一个钩子,它不需要在另一个钩子里面。