插件自定义操作挂钩不起作用

时间:2013-11-25 作者:Avinash

我正在尝试创建一个基本插件,我想在其中创建自己的动作挂钩。下面是相同的代码。

<?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;
}
?>

1 个回复
最合适的回答,由SO网友:Twifty 整理而成

你的插件需要等待主题functions.php 要加载的文件。尝试以下操作:

<?php
/*
Plugin Name: Demo Plugin
Version: 1.0
*/

add_action( \'after_setup_theme\', function() {
    do_action( \'basic_action_demo\' );
} );
?>
Theafter_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 在您的主题中。

结束

相关推荐

意外删除了wp_options数据库表的active_plugins部分

好吧,所以我很确定我在这里完蛋了,因为我没有数据库备份,但我想我还是问问以防万一。在PhpMyAdmin中,我的意思是只需转到wp\\u options表并清空该表中的active\\u plugins部分,因为插件错误而无法登录。我点击了删除按钮,而不是清空它。是否有任何方法可以手动添加此表的active\\u插件部分?我尝试了修复数据库的方法,但没有成功。