Difference between do_action and add_action

This question might be wrong, I am not sure about it. Because I am not clear on this.

I know add_action it is used to to hook our function to the specified function. For example add_action('wp_head'.'myfunc'); now what ever code in myfunc will be executed in the wp_head(). This is clear but i am having doubt in do_action what it does?

I think it is used to create our own hook like already available hooks(wp_head,wp_footer,..etc) If i am correct can anyone show me a simple understandable answer with simple example.

I have tried the difference in internet but all are pointing to difference between add_action and add_filter. I don’t want to go there because first i want to clarify this and then I’ll move there.

Can anybody help me?

EDIT after Question POST

function custom_register()
    echo '<script>jQuery(document).ready(function(){alert("Learning Hooks");});</script>';



I tried this in plugin but i didn’t get the alert message.

But when i hook the same function with wp_head then it is working fine



Use do_action( 'unique_name' ) to create your own actions.

You can use that to offer an API for your plugin, so other plugins can register callbacks for your custom action. Example: Do I need to call do_action in my plugin?

But you can use custom actions (or filters) in a theme too. Example: Best practice way to implement custom sections into a WordPress theme

And you can combine both to make a plugin and a theme working together. Example: How to make method from plugin available in theme?

Summary: add_action( 'foo' ) registers a callback, do_action( 'foo' ) executes that registered callback.

Leave a Comment