That is normal behaviour. See this question on WordPress Stack Exchange: Plugin Development: WordPress processes twice on post update. How to skip process on the first? answered by @Hameedullah Khan.
WordPress call functions hooked to save_post twice because:
- first time it saves the post revision.
- second time it saves the actual post.
As Hameedulah suggests, from your save_function()
hooked at save_post
action, you can return if DOING_AUTOSAVE:
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
return;
Related Posts:
- When can you get current page ID and initialize hooks right after?
- Customizing subject in comment notification e-mails
- How to save the values of checkbox to the register setting?
- Edit plugin without hooks in functions.php
- Using the ‘draft_to_publish’ hook (post status transition)
- Enqueue style inside shortcode but its loaded at the bottom of page (before footer scripts)
- Good tools for locating hooks in a wordpress page/admin interface/blog post?
- Pass A Value From Outside To A Plugin Variable
- Built in admin ajax hooks?
- Failed to invoke other hook from the init hook
- How can I add a custom meta value on file upload?
- Adding dynamic section to WordPress
- How can I filter blog name?
- Fatal error: Class not found in
- Is it possible to add an action to the currently running action?
- Showing Notifications While Activating Plugin
- OOP: Display warning and deactivate the plugin if PHP version is less than 5.4
- Determine plugin name from within plugin_action_links filter
- How to prevent action in ajax request, when in admin side?
- merging an array to an existing array using add_filter
- template_redirect not being called when using ajax
- Placement of Code in Plugin for hooking `save_post`
- publish_post plugin hook doesn’t always pass $post->post_content
- What are the benefit in adding hook in the init() hook?
- add_action in functions.php, do_action in plugin?
- How to correctly detect accessing wp-content/uploads?
- add action for displaying posts using a shortcode
- ‘wp_login’ action hook not working with wp-login.php file
- Remove rewrite rules generated by plugin during deactivation
- How to pull code snippet from functionality plugin?
- Where (or when) should I register a new taxonomy?
- Any hook for pre-plugin-update -either bulk or single plugin update
- How to get all of the activate_plugin action parameters?
- How to stop activating a plugin and show admin notice when dependent plugins minimum version is not met
- Using a post-signup hook to get user details
- Get Time Taken By Each Action Hook in WordPress
- Are functions in main plugin file called before function bound to register_activation_hook runs?
- do_action() hook into load-(page)
- Howto check version of another plugin and then add a submenu page to it
- Hook for page Request?
- How do I add $_SESSION[”] to my wordpress page?
- Save user total active time after login in wordpress [closed]
- wp_loaded with static Singleton
- is it possible to hook every page style?
- Quick press publish post hook
- using wp_footer hook in a plugin
- How to deactivate my plugin upon deactivation of NextGen
- How to automatically activate users after registration without activation email?
- Creating a plugin that will display text on every page
- Activation flow of a plugin in a multisite environment
- Add hook after content without formatting
- admin_post hook not firing function inside class
- The function called on the wp head hook becomes null
- When/where would want to attach other classes to the base class in a WordPress plugin?
- Passing function into add_action always returns the first argument
- Hook to display element as product on category page
- WordPress Boilerplate Plugin doesn’t see callback functions for add_settings_field and add_settings_section
- plugin not hooking to my custom hook
- Plugin hook breaks new WP 4.0 media library grid view?
- Plugin Hook: Get posts
- Display_rows() and column_cb() strange behaviour
- How to create and use Custom hooks
- Checking url from plugin [duplicate]
- How wordpress plugin hooks works? [duplicate]
- WordPress Hooks : Where to place callbacks that repetitively yield the same effect?
- Suitable hook when creating, updating and deleting posts programmatically
- Why is my activator class adding the files/running the actions I add?
- is_user_logged_in() undefined at shutdown in plugin context
- Function to activate WordPress theme inside a plugin
- What is the correct way to check if WP_Filesystem can write to a directory without aking for username / password?
- shortcode doesn’t work
- building plugin and it is displaying above plugins page
- Where to hook my plugin’s action
- load_theme_textdomain path
- Add custom message to the plugins page of WordPress
- Conditional attributes and logic per product category
- Why Is This Code Causing The Admin Bar to Disappear?
- Displaying Custom Sidebar Without Modifying Theme’s Core File?
- Include a php file from another plugin
- How do I make a secure API call from a shortcode when a button is clicked?
- Can the uniqueness of the plugin file/plugin slug and version number be trusted?
- Advanced WordPress plugin activation detection
- Switch from wp-cron to a server cron job
- WordPress plugin: efficient way to store large data
- The Events Calendar Plugin – List View Background Colour Issue [closed]
- Disable Author Archive just for certain roles in bulk
- Seperate plugin and theme files
- Pass PHP variable to javascript
- How to implement color picker from WordPress in my boilerplate plugin?
- custom post type plugin error [closed]
- Make downloadable ebook read online without download option
- WordPress rewrite rule depend on meta values not ids
- Problem with wordpress has_action() function
- Display Woocommerce attribute name above product title
- In woocommerce, is there any way to empty wordpress default mini cart when order placed?
- Inactive Plugin Files
- Hook into install email
- Plugin – including external javascript calling google maps
- WordPress Code Access to Restricted Content without Registration
- How to add custom html to the Media > Attachment Details modal?