WordPress.org

Make WordPress Core

Ticket #3794: post.php.diff

File post.php.diff, 893 bytes (added by Justinsomnia, 11 years ago)

adding post_save_pre and post_publish_pre filters

  • wp-includes/post.php

     
    489489        if ( is_object($postarr) )
    490490                $postarr = get_object_vars($postarr);
    491491
    492         // export array as variables
    493         extract($postarr);
    494 
    495492        // Are we updating or creating?
    496493        $update = false;
    497         if ( !empty($ID) ) {
     494        if ( !empty($postarr['ID']) ) {
    498495                $update = true;
    499                 $post = & get_post($ID);
     496                $post = & get_post($postarr['ID']);
    500497                $previous_status = $post->post_status;
    501498        }
     499       
     500        if ( $postarr['post_status'] == 'publish' && $previous_status != 'publish' ) {
     501                $postarr = apply_filters('post_publish_pre', $postarr);
     502        } else {
     503                $postarr = apply_filters('post_save_pre', $postarr);
     504        }
     505     
     506        // export array as variables
     507        extract($postarr);
    502508
    503509        // Get the basics.
    504510        if ( empty($no_filter) ) {