我正在尝试创建一个基本插件,我想在其中创建自己的动作挂钩。下面是相同的代码。
<?php
/*
Plugin Name: Demo Plugin
Version: 1.0
*/
do_action(\'basic_action_demo\');
?>
现在激活这个插件后,我想在我当前主题的函数中使用这个动作挂钩。php文件,代码如下:
add_action(\'basic_action_demo\',\'action_demo\');
function action_demo()
{
echo "I am inside";
}
现在的问题是,我的挂钩操作从未被调用,我们可以看到do\\u操作是无条件调用的,因此它将在每次页面加载时被调用,但它从未进入“action\\u demo”方法。
到目前为止,我发现插件是在我的theme\'e函数之前加载的。执行php文件。所以这里先调用do\\u action,然后再调用add\\u action。
如果你能给我一个提示,我将不胜感激。
更新时间:
以下插件操作有效。
<?php
/*
Plugin Name: Demo Plugin
Version: 1.0
*/
add_action(\'basic_action_demo\',\'action_demo\');
do_action(\'basic_action_demo\');
function action_demo()
{
echo "I am Inside";
die;
}
?>
最合适的回答,由SO网友:Twifty 整理而成
你的插件需要等待主题functions.php
要加载的文件。尝试以下操作:
<?php
/*
Plugin Name: Demo Plugin
Version: 1.0
*/
add_action( \'after_setup_theme\', function() {
do_action( \'basic_action_demo\' );
} );
?>
The
after_setup_theme
之后立即运行挂钩
functions.php
已加载。
更新以下评论。在插件中,为表单创建函数:
<?php
/*
Plugin Name: Demo Plugin
Version: 1.0
*/
function output_my_form () {
echo "I\'m a form";
// do your action here
do_action( \'basic_action_demo\' );
}
?>
然后在你的主题中
functions.php
:
if ( function_exists( \'output_my_form\' ) ) {
output_my_form();
}
这是一个简单的例子。实际上,您可能希望从
form.php
在您的主题中。