Skip to content

Instantly share code, notes, and snippets.

@balbuf
Created October 15, 2016 17:54
Show Gist options
  • Save balbuf/d232769f1e7d66fe91b8ecd7795ef3cb to your computer and use it in GitHub Desktop.
Save balbuf/d232769f1e7d66fe91b8ecd7795ef3cb to your computer and use it in GitHub Desktop.

Revisions

  1. balbuf created this gist Oct 15, 2016.
    38 changes: 38 additions & 0 deletions wordpress-import-update.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,38 @@
    <?php

    /**
    * When using the WordPress Importer, update existing
    * posts instead of skipping them. Updates content according
    * to the import file even if the existing post was updated
    * more recently.
    *
    * To use, drop this file into your /mu-plugins/ folder or
    * copy this code into your functions.php file.
    */

    class WPImporterUpdate {

    protected $existing_post;

    function __construct() {
    add_filter( 'wp_import_existing_post', [ $this, 'wp_import_existing_post' ], 10, 2 );
    add_filter( 'wp_import_post_data_processed', [ $this, 'wp_import_post_data_processed' ], 10, 2 );
    }

    function wp_import_existing_post( $post_id, $post ) {
    if ( $this->existing_post = $post_id ) {
    $post_id = 0; // force the post to be imported
    }
    return $post_id;
    }

    function wp_import_post_data_processed( $postdata, $post ) {
    if ( $this->existing_post ) {
    // update the existing post
    $postdata['ID'] = $this->existing_post;
    }
    return $postdata;
    }

    }
    new WPImporterUpdate;