在激活挂钩中注册短代码不起作用

时间:2017-02-16 23:05:18

标签: php wordpress shortcode

我一直在研究插件,我一直在尝试在注册为激活挂钩的函数中添加一个短代码。我知道正在调用该函数,因为如果我在函数内部添加一个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');

1 个答案:

答案 0 :(得分:2)

register_activation_hook仅触发一次 - 当插件被激活时。因此,您的短代码仅在激活时被注册一次,然后不再可用。

您应该在第一个示例中使用add_shortcodeadd_shortcode本身就是一个钩子,它不需要在另一个钩子里面。