WordPress.org

Make WordPress Core

Ticket #4231: 4231.diff

File 4231.diff, 2.9 KB (added by Otto42, 11 years ago)

Patch for #4230 AND #4231

  • wp-includes/default-filters.php

     
    190190add_action('save_post', '_save_post_hook', 5, 2);
    191191add_action('transition_post_status', '_transition_post_status', 5, 3);
    192192
    193 ?>
    194  No newline at end of file
     193// actions to schedule the update_links call
     194add_action('update_links','wp_update_links');
     195add_action('update_option_use_linksupdate', 'links_update_change',10,2);
     196?>
  • wp-includes/pluggable.php

     
    174174        if ( empty( $headers ) ) {
    175175                $headers = array();
    176176        } elseif ( !is_array( $headers ) ) {
    177                 // Explode the headers out, so this function can take both 
     177                // Explode the headers out, so this function can take both
    178178                // string headers and an array of headers.
    179179                $tempheaders = (array) explode( "\n", $headers );
    180180                $headers = array();
     
    396396        $location = apply_filters('wp_redirect', $location, $status);
    397397
    398398        if ( !$location ) // allows the wp_redirect filter to cancel a redirect
    399                 return false; 
     399                return false;
    400400
    401401        $location = preg_replace('|[^a-z0-9-~+_.?#=&;,/:%]|i', '', $location);
    402402        $location = wp_kses_no_null($location);
     
    548548        global $wpdb;
    549549
    550550        if( get_option( "moderation_notify" ) == 0 )
    551                 return true; 
     551                return true;
    552552
    553553        $comment = $wpdb->get_row("SELECT * FROM $wpdb->comments WHERE comment_ID='$comment_id' LIMIT 1");
    554554        $post = $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID='$comment->comment_post_ID' LIMIT 1");
     
    653653}
    654654endif;
    655655
     656if ( !function_exists('wp_update_links') ) :
     657// the links update function
     658function wp_update_links() {
     659        require_once( ABSPATH . 'wp-includes/rss.php');
     660
     661        if ( !get_option('use_linksupdate') )
     662                wp_die(__('Feature disabled.'));
     663
     664        $link_rsses = $wpdb->get_col("SELECT link_rss FROM $wpdb->links");
     665        if ( !$link_rsses )
     666                wp_die(__('No links'));
     667
     668        foreach ($link_rsses as $rssurl)
     669        {
     670                $feed = fetch_rss($rssurl);
     671                $mod = $feed->last_modified;
     672                if ($mod != null) {
     673                        $modtime = strtotime($mod);
     674                        if ($modtime !== false && $modtime !== -1) { // php 5.1 and up returns false on failure, prev versions return -1
     675                                $wpdb->query("UPDATE $wpdb->links SET link_updated = FROM_UNIXTIME($modtime) WHERE link_rss = '$rssurl'");
     676                        }
     677                }
     678        }
     679}
     680endif;
     681
     682if ( !function_exists('wp_links_update_change') ) :
     683// the update_links scheduler function
     684function wp_links_update_change($oldvalue, $newvalue) {
     685
     686        if ($oldvalue == $newvalue) return;
     687
     688        if ($newvalue == 1) {
     689                wp_schedule_event(time(), apply_filters('update_links_schedule','daily'), 'update_links');
     690        }
     691        else {
     692                wp_clear_scheduled_hook('update_links');
     693        }
     694}
     695endif;
     696
    656697?>