do_action
是用于运行动作挂钩的WordPress函数。我想这就是你想要做的。有鉴于此,第一个参数(本例中唯一的参数)需要是动作挂钩名称。如果您给它传递了一个有效的钩子名,并将一个函数附加到该钩子上,那么这段代码可以工作。
换句话说,如果你这样设置。。。
function do_action_shortcode($atts, $content = \'\') {
ob_start();
do_action($content);
$out = ob_get_contents();
ob_end_clean();
return $out;
}
add_shortcode(\'do-action\', \'do_action_shortcode\');
function generic_cb() {
echo \'generic content\';
}
add_action(\'testhook\',\'generic_cb\');
。。。所以你有一个动作
testhook
, 并使用类似于。。。
[do-action]testhook[/do-action]
。。。在你的帖子正文中。它确实有效。
You should not be using hyphens in the shortcode name though.
我不知道你到底错在哪一部分,但希望工作模型(测试)能帮助你解决问题。
我发现实际生成错误的唯一方法是generic_cb
(在示例中)未定义。如果您发送一个不存在的钩子名称。。。
[do-action]notahook[/do-action]
。。。它什么都不做。