WordPress Plugin Actions

This post was written as part of the How to Write a WordPress Plugin series.
WordPress actions allow you as a plugin author to be able to hook into the WordPress application and execute a piece of code. An example of an action would be that you want a execute some code after a user has published a post or left a comment.
Some of the actions that I use heavily are:
- admin_menu: Allows you to set up an admin panel for your plugin.
- wp_head: Allows you to insert code into the
<head>tag of a blog
Actions in Action
While defining the structure of a WordPress plugin, I left a place holder for some actions. In this example, we are going to set up a piece of code that will run inside the <head> tag of a WordPress blog.
First we need to add a function into our DevloungePluginSeries class.
-
function addHeaderCode() {
-
?>
-
<!-- Devlounge Was Here -->
-
<?php
-
-
}
All the above function does is output an HTML comment. Rather simple, but you could output just about anything. To call this function, we add an action.
From the WordPress Plugin API page, the add_action structure is as follows:
add_action ( 'hook_name', 'your_function_name', [priority], [accepted_args] );
Since we are calling a function inside of a class, we pass the action an array with a reference to our class variable (dl_pluginSeries) and the function name we wish to call (addHeaderCode). We have given our plugin a priority level of 1, with lower numbers executed first.
Running the Code
If the Devlounge Plugin Series plugin is activated, the comment of "Devlounge was here" should show up when you go to View->Source in your web browser when looking at your main blog site.
Removing Actions
If your plugin dynamically adds actions, you can dynamically remove actions as well with the remove_actions function. The structure is as follows:
remove_action('action_hook','action_function').
Conclusion
Hopefully this post gave you some insight into what you could do when hooking into WordPress actions. Once again, you can download the code for the sample Devlounge Plugin Series for actions.
Download the Code Used In This Post
For further reading, please check out these links:




Want an avatar? Get a gravatar! • Link to this comment!
AJ,
One of the readers was curious what plugin you used for showing code. Could you please leave a comment here with the link to the plugin?
Want an avatar? Get a gravatar! • Link to this comment!
The plugin is iG Syntax hilighter
Want an avatar? Get a gravatar! • Link to this comment!
Just a tip for anyone who ran into this. The wp_head action wouldn’t work for me at first. Turns out I forgot to add <?php wp_head(); ?> between my html head tags for my theme, so remember to check your theme header template if it doesn’t work for you, all is well now.
Fixed post, the first one stripped out the php.
Want an avatar? Get a gravatar! • Link to this comment!
Hey, thanks for this series, this is the second time that I’ve referred to it to help me write a plugin. I have come across a problem though. I have a function that test is_single and also if a value in my array is equal to true. This function then hooks into wp_head. However it doesn’t work. I think I might need to make my option variable global, to be able to use it like this? Can you point me in the right direction?
Thanks