The {$old_status}_to_{$new_status}
and {$new_status}_{$post->post_type}
hooks tend to generally solve the problem.
To avoid running the code in case post status is changed to draft then published again (after already being published), implement a simple flag using the post_meta
functionality.
Note: the updated hook should be ‘draft_to_publish’ instead of ‘draft_to_published’ however, the code below is not modified and should be if you plan to use in WP 3.5
add_action( 'draft_to_published', 'wpse47566_do_once_on_publish' );
function wpse47566_do_once_on_publish( $post ) {
// check post type if necessary
if ( $post->post_type != 'a_specific_type' ) return;
$post_id = $post->ID;
if ( !get_post_meta( $post_id, 'mycoderan', $single = true ) ) {
// ...run code once
update_post_meta( $post_id, 'mycoderan', true );
}
}
Related Posts:
- add action only on post publish – not update
- How to prevent posts from being published too close to each other?
- Is it possible to Schedule Attachments in WordPress?
- Elegant way to include only published posts with get_objects_in_term()?
- WordPress plugin to publish to multiple remote WordPress blogs
- Publish pending article from front end with a button?
- How to add a “publish” link to the quick actions
- How to limit user to publish post per day and per role?
- When a user creates a post (pending), send a confirmation link that allows them to publish
- In what sequence are the hooks fired when a post is “published”?
- Restrict the Number of Posts an Author can Publish (over time)?
- Add javascript when post is published
- featuring old articles without messing up with the archive
- Publish posts only after the condition is met
- Hiding by default specific post status on backend list?
- Detect Post Type when publish_post is ran
- How can I display a specific user’s first published post?
- Does WordPress remove draft status automatically?
- What Can I Use To Add A Custom Button Between Publish button and Move To Trash?
- Prevent post from being published if no category selected
- Send email to user that his post has been rejected
- Limit number of posts a user can make per minute?
- Every possible way to get data (posts) from WordPress
- publish_post conflicts with save_post
- Notification to Admin or Author upon new post [duplicate]
- What differences are there between a Privately Published post and a Draft post?
- How to run a function when post is edited or updated using publish post action?
- How can I create custom button in post.php
- How to rename “Publish” metabox title in post screen
- count the total number of comments the user has received for his published posts
- Automatically Updating Publish Date Bug
- How can I schedule a PAGE to go live at a future date/time?
- How to give capability (publish contributors posts) to author role?
- Print a message if excerpt is empty after posts have been publish/update!
- Check if checkbox is marked on publish/update post
- Decide user that can publish a post
- How to switch wordpress post status between publish and schedule in MySQL?
- Prevent scheduled post being published if date/time is past current date/time
- Calling Different Custom Post Timestamps in a table
- Copy post to separate database with “add_action(….)”
- Do action on publish or update?
- transition_post_status hook doesn’t have any POST data when publish with Gutenberg [closed]
- How do I manage my users post before publish?
- do more action after I publish a post
- Assign published posts to another user automatically
- Display password protected posts to logged in users
- Stop wordpress from creating empty/null entries
- WordPress bulk category select when publishing post
- How can I tell if a post has been published at least once?
- Send email for pending post
- Post: how to set created date after post has been published [closed]
- Add delay to publish post
- Publish a Silent Post without updating Feed
- How can my plugin display a populated new post window
- How to set a Post’s default visibility to ‘Private’ in Gutenberg?
- WordPress doesn’t save or publish new posts
- Hook when post is set from published to draft?
- Send email to user when I publish a new post
- My posts are getting to Auto draft when I try to Publish
- How to publish a post if condition is met?
- WordPress get tags in “publish_post” hook
- How publish post from pending status
- post is not showing more than 3949 words
- Bulk Post update_post_meta
- Create blog post from external source and set publication date
- I want to send push notification just after publish a new post
- How to Test a Blog Post for Update vs. Publish Status — Unique
- How to handle a post before publishing?
- Return All Post from publish to draft [duplicate]
- I am creating a front end dashboard where I need to show all the posts by the current user. So, I need to show posts in publish
- Action while post is being published
- How can add custom commands in post-new.php in wordpress
- It tells me that I exceeded the maximum number of executions when trying to publish content
- How to add publish button in menu All Posts (Wp-Admin)
- Get WordPress post content by post id
- Get page ID of page that is set as the posts page
- Get Posts Under Custom Taxonomy
- How to limit the number of posts that WP_Query gets?
- Stop WordPress Wrapping Images In A “P” Tag
- When is the ‘post_content_filtered’ column in database cleared by WordPress?
- Turn a URL into an Attachment / Post ID
- GET the excerpt by ID
- Stop WordPress automatically adding tags to post content
- Determine if page is the Posts Page
- How to get ‘post_content’ without stripping tags?
- How to add an admin notice upon post save/update
- Print Current Post Index number within Loop
- Should we trust the post globals?
- Optimize post insert and delete for bulk operations?
- Get the Current Page Number
- How do you add thumbnail support for custom post types?
- How to mark every 3rd post
- Change Posts per page count
- Keep featured content post in homepage with original order
- How to display related posts from same category?
- Can posts have parents?
- Is there a action hook for the “Empty Trash” button?
- How to end the excerpt with a sentence rather than a word?
- How do I check if I linked to a post before I delete it?
- How to change the case of all post titles to “Title Case”