【问题标题】:wordpress do_action without add_action and action hook nameswordpress do_action 没有 add_action 和动作挂钩名称
【发布时间】:2018-04-04 17:26:11
【问题描述】:

我有点理解 add_action 和 do_action。例如

function mywork()
{
    echo "display my work";
}
add_action('mytag','mywork',10);
do_action('mytag');

这将呈现“显示我的作品”;

但是只做do_action怎么样。 例如

function customfunction()
    {
        echo "custom";
    }
do_action('customfunction');

没有渲染任何东西。 我还发现了一些 wordpress api 挂钩名称。例如“login_form”

do_action(login_form);

但什么也没发生。

【问题讨论】:

    标签: wordpress wordpress-hook


    【解决方案1】:

    当您编写do_action("actionName"); 时,您正在创建一个挂钩,因此您可以编写将在此处从外部源执行的代码。

    所以,你可以写do_action("actionName"),但是因为你没有添加代码来执行这个do_action()被调用它什么都不做。

    当您编写 add_action("actioName","functionName",parameters) 时,您是在告诉 WordPress:“嘿,每当您调用 do_action("actionNAme") 时,执行 functionName

    更新

    回答此评论: “但是我可以在没有任何 add_action 第一或回调函数的情况下执行 do_action 吗?”。

    答案是不,你不能。您已经创建了钩子,但您需要在某处附加代码,否则它不会执行任何操作,这就像一个事件,do_action 您正在告诉:“嘿,这发生了”。使用add_action,您可以告诉您何时运行该功能。

    【讨论】:

    • 感谢您的回复。你的意思是如果 add_action 没有添加回调函数,do_action 钩子将不起作用。我必须先做 add_action 吗?先做add_action再做do_action,我已经明白了。但是我可以在没有任何 add_action first 或回调函数的情况下做 do_action 钩子,就像我的第二个例子一样。在第二个示例中,我为“customfunction”编写了一个代码来执行,然后我调用了 do_action(customfunction)。所以所有wordpress定义的钩子都先做了add_action。我希望你明白我在说什么。稍后或明天我会回复更多。
    • 在您的更新答案中,“将代码附加到某处”,您的意思是通过 add_action 回调附加代码。如果是,那是唯一的方法吗?
    • 是的,这是唯一的方法,do_action 和 add_action 是一对,它们一起工作,一个没有另一个没有意义
    猜你喜欢
    • 2015-07-17
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 2023-03-08
    • 2018-03-25
    • 1970-01-01
    相关资源
    最近更新 更多