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
- How to check if post meta key exists or not in wordpress database
- Portable Post Links
- Related Posts by Multiple Tags?
- How to export posts with featured image
- How are terms connected with posts in database?
- JSON not valid after json_encode posts
- Hide parts of the post content on the home page
- Get the post_id of a new post
- Get a custom field of all posts on current blog page
- Number of displayed posts
- Add custom text automatically on each post
- What date to use as a post date? date_gmt or modified_date_gmt
- Display current post position in Elementor Posts widget
- My Custom Post Type Still Using index.php
- get_posts not pulling the correct number of posts
- If custom field is empty, use one from a previous post
- YARPP php question
- Related Customs posts
- How to add a ‘News’ section to specific posts in WordPress
- I have two post types in the same query, how can I use CSS to select only one post type?
- How do I display posts ordered by a date custom field?
- Post formatting bug in WordPress
- WordPress Request Post All Post ID in a Loop? [closed]
- Adding image in title
- display post according to the term
- Home page: using custom fields for posts and pages
- how to create child posts with parent post in wordpress?
- How to sort the post to a specific category