WordPress.org

Ready to get started?Download WordPress

Codex

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

Plugin API/Action Reference/publish post

Description

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 depreciated!

Previously, on both this page and the Action Reference page, publish_post had been identified as depreciated 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.

Example

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 );

Related

Post Status Transitions