WordPress.org

Plugin Directory

Changeset 688911


Ignore:
Timestamp:
03/29/13 17:32:54 (13 months ago)
Author:
westi
Message:

WordPress Importer: Add filters to make the importer easier to extend and monitor.

See: #WP21710 props batmoo

File:
1 edited

Legend:

Unmodified
Added
Removed
  • wordpress-importer/trunk/wordpress-importer.php

    r524469 r688911  
    394394     */ 
    395395    function process_categories() { 
     396        $this->categories = apply_filters( 'wp_import_categories', $this->categories ); 
     397 
    396398        if ( empty( $this->categories ) ) 
    397399            return; 
     
    438440     */ 
    439441    function process_tags() { 
     442        $this->tags = apply_filters( 'wp_import_tags', $this->tags ); 
     443 
    440444        if ( empty( $this->tags ) ) 
    441445            return; 
     
    476480     */ 
    477481    function process_terms() { 
     482        $this->terms = apply_filters( 'wp_import_terms', $this->terms ); 
     483 
    478484        if ( empty( $this->terms ) ) 
    479485            return; 
     
    523529     */ 
    524530    function process_posts() { 
     531        $this->posts = apply_filters( 'wp_import_posts', $this->posts ); 
     532 
    525533        foreach ( $this->posts as $post ) { 
     534            $post = apply_filters( 'wp_import_post_data_raw', $post ); 
     535 
    526536            if ( ! post_type_exists( $post['post_type'] ) ) { 
    527537                printf( __( 'Failed to import “%s”: Invalid post type %s', 'wordpress-importer' ), 
    528538                    esc_html($post['post_title']), esc_html($post['post_type']) ); 
    529539                echo '<br />'; 
     540                do_action( 'wp_import_post_exists', $post ); 
    530541                continue; 
    531542            } 
     
    579590                ); 
    580591 
     592                $postdata = apply_filters( 'wp_import_post_data_processed', $postdata, $post ); 
     593 
    581594                if ( 'attachment' == $postdata['post_type'] ) { 
    582595                    $remote_url = ! empty($post['attachment_url']) ? $post['attachment_url'] : $post['guid']; 
     
    598611                } else { 
    599612                    $comment_post_ID = $post_id = wp_insert_post( $postdata, true ); 
     613                    do_action( 'wp_import_insert_post', $post_id, $original_post_ID, $postdata, $post ); 
    600614                } 
    601615 
     
    615629            // map pre-import ID to local ID 
    616630            $this->processed_posts[intval($post['post_id'])] = (int) $post_id; 
     631 
     632            if ( ! isset( $post['terms'] ) ) 
     633                $post['terms'] = array(); 
     634 
     635            $post['terms'] = apply_filters( 'wp_import_post_terms', $post['terms'], $post_id, $post ); 
    617636 
    618637            // add categories, tags and other terms 
     
    628647                        if ( ! is_wp_error( $t ) ) { 
    629648                            $term_id = $t['term_id']; 
     649                            do_action( 'wp_import_insert_term', $t, $term, $post_id, $post ); 
    630650                        } else { 
    631651                            printf( __( 'Failed to import %s %s', 'wordpress-importer' ), esc_html($taxonomy), esc_html($term['name']) ); 
     
    633653                                echo ': ' . $t->get_error_message(); 
    634654                            echo '<br />'; 
     655                            do_action( 'wp_import_insert_term_failed', $t, $term, $post_id, $post ); 
    635656                            continue; 
    636657                        } 
     
    641662                foreach ( $terms_to_set as $tax => $ids ) { 
    642663                    $tt_ids = wp_set_post_terms( $post_id, $ids, $tax ); 
     664                    do_action( 'wp_import_set_post_terms', $tt_ids, $ids, $tax, $post_id, $post ); 
    643665                } 
    644666                unset( $post['terms'], $terms_to_set ); 
    645667            } 
     668 
     669            if ( ! isset( $post['comments'] ) ) 
     670                $post['comments'] = array(); 
     671 
     672            $post['comments'] = apply_filters( 'wp_import_post_comments', $post['comments'], $post_id, $post ); 
    646673 
    647674            // add/update comments 
     
    675702                        $comment = wp_filter_comment( $comment ); 
    676703                        $inserted_comments[$key] = wp_insert_comment( $comment ); 
     704                        do_action( 'wp_import_insert_comment', $inserted_comments[$key], $comment, $comment_post_ID, $post ); 
    677705 
    678706                        foreach( $comment['commentmeta'] as $meta ) { 
     
    687715            } 
    688716 
     717            if ( ! isset( $post['postmeta'] ) ) 
     718                $post['postmeta'] = array(); 
     719 
     720            $post['postmeta'] = apply_filters( 'wp_import_post_meta', $post['postmeta'], $post_id, $post ); 
     721 
    689722            // add/update post meta 
    690             if ( isset( $post['postmeta'] ) ) { 
     723            if ( ! empty( $post['postmeta'] ) ) { 
    691724                foreach ( $post['postmeta'] as $meta ) { 
    692                     $key = apply_filters( 'import_post_meta_key', $meta['key'] ); 
     725                    $key = apply_filters( 'import_post_meta_key', $meta['key'], $post_id, $post ); 
    693726                    $value = false; 
    694727 
Note: See TracChangeset for help on using the changeset viewer.