Ready to get started?Download WordPress


Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Plugin API/Action Reference/publish post


publish_post is an action triggered whenever a post is published, or if it is edited and the status is changed to publish.

This action hook is not deprecated!

Previously, on both this page and the Action Reference page, publish_post had been identified as deprecated since WordPress 2.3. That was incorrect. Since Version 2.3, publish_post is an action that adheres to the new form of post status transition actions {status}_{post_type}. For more information, see Post Status Transitions.


The example below will send an email via wp_mail() to the post author when his or her article is published.

function post_published_notification( $ID, $post ) {
    $author = $post->post_author; /* Post author ID. */
    $name = get_the_author_meta( 'display_name', $author );
    $email = get_the_author_meta( 'user_email', $author );
    $title = $post->post_title;
    $permalink = get_permalink( $ID );
    $edit = get_edit_post_link( $author, '' );
    $to[] = sprintf( '%s <%s>', $name, $email );
    $subject = sprintf( 'Published: %s', $title );
    $message = sprintf ('Congratulations, %s! Your article ā€œ%sā€ has been published.' . "\n\n", $name, $title );
    $message .= sprintf( 'View: %s', $permalink );
    $headers[] = '';
    wp_mail( $to, $subject, $message, $headers );
add_action( 'publish_post', 'post_published_notification', 10, 2 );


Post Status Transitions