WordPress 插件 Actions 动作

优质
小牛编辑
121浏览
2023-12-01

WordPress actions 允许作为插件作者的你插入到WordPress 应用中并且执行一段代码。一个Action 的例子就是,你
想要在一个用户发布完一篇文章或者留下一篇留言的时候执行一个动作。

一些我使用极其频繁的Action 有:

  • admin_menu:允许你给你的插件设置一个管理面板。
  • wp_head:允许你将代码插入到博客的<head>标签内。

Action在行动

当定义一个WordPress 插件的结构的时,我为某些Action 留下了一块地方。在这个例子中,我们将使得一段代码可以在WordPress 博客中的<head>标签内运行。

首先,我们需要在DevloungePluginSeries类中添加一个函数:

function addHeaderCode(){
    <!-- Devlounge Was Here-->
}

上面一段代码的作用是输出HTML 注释。相当简单,但是你实际上可以输出任何东西。为了调用这个函数,我们要添加一个Action。

//Actions and Filters
if (isset($dl_pluginSeries)){
    //Actions
    add_action('wp_head',array(&$dl_pluginSeries,'addHeaderCode'),1);
    //Filters
}

从WordPress 插件API 中我们可以知道,add_action 的结构如下:

add_action('hook_name','your_function_name',[priority],[accepted_args]);

由于我们是在一个类的内部调用一个函数,我们传递给Action 一个数组,里面包含我们的类对象的引用dl_pluginSeries和我们想要调用的函数名addHeaderCode。我们已经给我们的插件设定了一个优先级为1,数字越小,执行时间越靠前。

运行代码

如果Devlounge Plugin Series 插件被启用了,使用查看->源文件应该可以在你的博客的源码中看到注释

Devlounge was here

移除Action

如果你的插件动态地添加Action,你也可以使用remove_action 来动态地移除action。用法如下:

remove_action('action_hook','action_function')