WordPress.org

Make WordPress Core

Ticket #16927: 16927.diff

File 16927.diff, 8.4 KB (added by markjaquith, 4 years ago)
  • wp-admin/includes/dashboard.php

    function wp_dashboard_recent_comments_control() { 
    767767} 
    768768 
    769769function wp_dashboard_incoming_links() { 
    770         echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>'; 
     770        $widgets = get_option( 'dashboard_widget_options' ); 
     771        if ( $cache = wp_cache_get( 'incoming_links_output_' . md5( serialize( @$widgets['dashboard_incoming_links'] ) ), 'dashboard' ) ) { 
     772                echo $cache; 
     773                return; 
     774        } else { 
     775                echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>'; 
     776        } 
    771777} 
    772778 
    773779/** 
    function wp_dashboard_incoming_links() { 
    776782 * @since 2.5.0 
    777783 */ 
    778784function wp_dashboard_incoming_links_output() { 
     785        ob_start(); 
    779786        $widgets = get_option( 'dashboard_widget_options' ); 
    780787        @extract( @$widgets['dashboard_incoming_links'], EXTR_SKIP ); 
    781788        $rss = fetch_feed( $url ); 
    function wp_dashboard_incoming_links_output() { 
    793800                echo '<p>' . __('This dashboard widget queries <a href="http://blogsearch.google.com/">Google Blog Search</a> so that when another blog links to your site it will show up here. It has found no incoming links&hellip; yet. It&#8217;s okay &#8212; there is no rush.') . "</p>\n"; 
    794801                $rss->__destruct(); 
    795802                unset($rss); 
    796                 return; 
    797         } 
     803        } else { 
    798804 
    799         echo "<ul>\n"; 
     805                echo "<ul>\n"; 
    800806 
    801         if ( !isset($items) ) 
    802                 $items = 10; 
     807                if ( !isset($items) ) 
     808                        $items = 10; 
    803809 
    804         foreach ( $rss->get_items(0, $items) as $item ) { 
    805                 $publisher = ''; 
    806                 $site_link = ''; 
    807                 $link = ''; 
    808                 $content = ''; 
    809                 $date = ''; 
    810                 $link = esc_url( strip_tags( $item->get_link() ) ); 
     810                foreach ( $rss->get_items(0, $items) as $item ) { 
     811                        $publisher = ''; 
     812                        $site_link = ''; 
     813                        $link = ''; 
     814                        $content = ''; 
     815                        $date = ''; 
     816                        $link = esc_url( strip_tags( $item->get_link() ) ); 
    811817 
    812                 $author = $item->get_author(); 
    813                 if ( $author ) { 
    814                         $site_link = esc_url( strip_tags( $author->get_link() ) ); 
     818                        $author = $item->get_author(); 
     819                        if ( $author ) { 
     820                                $site_link = esc_url( strip_tags( $author->get_link() ) ); 
    815821 
    816                         if ( !$publisher = esc_html( strip_tags( $author->get_name() ) ) ) 
    817                                 $publisher = __( 'Somebody' ); 
    818                 } else { 
    819                   $publisher = __( 'Somebody' ); 
    820                 } 
    821                 if ( $site_link ) 
    822                         $publisher = "<a href='$site_link'>$publisher</a>"; 
    823                 else 
    824                         $publisher = "<strong>$publisher</strong>"; 
     822                                if ( !$publisher = esc_html( strip_tags( $author->get_name() ) ) ) 
     823                                        $publisher = __( 'Somebody' ); 
     824                        } else { 
     825                          $publisher = __( 'Somebody' ); 
     826                        } 
     827                        if ( $site_link ) 
     828                                $publisher = "<a href='$site_link'>$publisher</a>"; 
     829                        else 
     830                                $publisher = "<strong>$publisher</strong>"; 
    825831 
    826                 $content = $item->get_content(); 
    827                 $content = wp_html_excerpt($content, 50) . ' ...'; 
     832                        $content = $item->get_content(); 
     833                        $content = wp_html_excerpt($content, 50) . ' ...'; 
    828834 
    829                 if ( $link ) 
    830                         /* translators: incoming links feed, %1$s is other person, %3$s is content */ 
    831                         $text = __( '%1$s linked here <a href="%2$s">saying</a>, "%3$s"' ); 
    832                 else 
    833                         /* translators: incoming links feed, %1$s is other person, %3$s is content */ 
    834                         $text = __( '%1$s linked here saying, "%3$s"' ); 
    835  
    836                 if ( !empty($show_date) ) { 
    837                         if ( !empty($show_author) || !empty($show_summary) ) 
    838                                 /* translators: incoming links feed, %4$s is the date */ 
    839                                 $text .= ' ' . __( 'on %4$s' ); 
    840                         $date = esc_html( strip_tags( $item->get_date() ) ); 
    841                         $date = strtotime( $date ); 
    842                         $date = gmdate( get_option( 'date_format' ), $date ); 
     835                        if ( $link ) 
     836                                /* translators: incoming links feed, %1$s is other person, %3$s is content */ 
     837                                $text = __( '%1$s linked here <a href="%2$s">saying</a>, "%3$s"' ); 
     838                        else 
     839                                /* translators: incoming links feed, %1$s is other person, %3$s is content */ 
     840                                $text = __( '%1$s linked here saying, "%3$s"' ); 
     841 
     842                        if ( !empty($show_date) ) { 
     843                                if ( !empty($show_author) || !empty($show_summary) ) 
     844                                        /* translators: incoming links feed, %4$s is the date */ 
     845                                        $text .= ' ' . __( 'on %4$s' ); 
     846                                $date = esc_html( strip_tags( $item->get_date() ) ); 
     847                                $date = strtotime( $date ); 
     848                                $date = gmdate( get_option( 'date_format' ), $date ); 
     849                        } 
     850 
     851                        echo "\t<li>" . sprintf( $text, $publisher, $link, $content, $date ) . "</li>\n"; 
    843852                } 
    844853 
    845                 echo "\t<li>" . sprintf( $text, $publisher, $link, $content, $date ) . "</li>\n"; 
     854                echo "</ul>\n"; 
     855                $rss->__destruct(); 
     856                unset($rss); 
    846857        } 
    847  
    848         echo "</ul>\n"; 
    849         $rss->__destruct(); 
    850         unset($rss); 
     858        $cache = ob_get_flush(); 
     859        if ( $cache ) 
     860                wp_cache_set( 'incoming_links_output_' . md5( serialize( @$widgets['dashboard_incoming_links'] ) ), $cache, 'dashboard', 30*15 ); 
    851861} 
    852862 
    853863function wp_dashboard_incoming_links_control() { 
    function wp_dashboard_incoming_links_control() { 
    855865} 
    856866 
    857867function wp_dashboard_primary() { 
    858         echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>'; 
     868        $widgets = get_option( 'dashboard_widget_options' ); 
     869        if ( $cache = wp_cache_get( 'primary_output_' . md5( serialize( @$widgets['dashboard_primary'] ) ), 'dashboard' ) ) { 
     870                echo $cache; 
     871                return; 
     872        } else { 
     873                echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>'; 
     874        } 
    859875} 
    860876 
    861877function wp_dashboard_primary_control() { 
    function wp_dashboard_primary_control() { 
    870886 * @param string $widget_id 
    871887 */ 
    872888function wp_dashboard_rss_output( $widget_id ) { 
     889        ob_start(); 
    873890        $widgets = get_option( 'dashboard_widget_options' ); 
    874891        echo '<div class="rss-widget">'; 
    875892        wp_widget_rss_output( $widgets[$widget_id] ); 
    876893        echo "</div>"; 
     894        $cache = ob_get_flush(); 
     895        if ( $cache ) 
     896                wp_cache_set( 'primary_output_' . md5( serialize( @$widgets['dashboard_primary'] ) ), $cache, 'dashboard', 30*15 ); 
    877897} 
    878898 
    879899function wp_dashboard_secondary() { 
    880         echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>'; 
     900        $widgets = get_option( 'dashboard_widget_options' ); 
     901        if ( $cache = wp_cache_get( 'secondary_output_' . md5( serialize( @$widgets['dashboard_secondary'] ) ), 'dashboard' ) ) { 
     902                echo $cache; 
     903                return; 
     904        } else { 
     905                echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>'; 
     906        } 
    881907} 
    882908 
    883909function wp_dashboard_secondary_control() { 
    function wp_dashboard_secondary_control() { 
    892918 * @return unknown 
    893919 */ 
    894920function wp_dashboard_secondary_output() { 
     921        ob_start(); 
    895922        $widgets = get_option( 'dashboard_widget_options' ); 
    896923        @extract( @$widgets['dashboard_secondary'], EXTR_SKIP ); 
    897924        $rss = @fetch_feed( $url ); 
    898  
    899925        if ( is_wp_error($rss) ) { 
    900926                if ( is_admin() || current_user_can('manage_options') ) { 
    901927                        echo '<div class="rss-widget"><p>'; 
    function wp_dashboard_secondary_output() { 
    913939                $rss->__destruct(); 
    914940                unset($rss); 
    915941        } 
     942        $cache = ob_get_flush(); 
     943        if ( $cache ) 
     944                wp_cache_set( 'secondary_output_' . md5( serialize( @$widgets['dashboard_secondary'] ) ), $cache, 'dashboard', 30*15 ); 
    916945} 
    917946 
    918947function wp_dashboard_plugins() { 
    919         echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>'; 
     948        if ( $cache = wp_cache_get( 'plugins_output', 'dashboard' ) ) { 
     949                echo $cache; 
     950                return; 
     951        } else { 
     952                echo '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="describe hide-if-js">' . __('This widget requires JavaScript.') . '</p>'; 
     953        } 
    920954} 
    921955 
    922956/** 
    function wp_dashboard_plugins() { 
    925959 * @since 2.5.0 
    926960 */ 
    927961function wp_dashboard_plugins_output() { 
     962        ob_start(); 
    928963        $popular = fetch_feed( 'http://wordpress.org/extend/plugins/rss/browse/popular/' ); 
    929964        $new     = fetch_feed( 'http://wordpress.org/extend/plugins/rss/browse/new/' ); 
    930965        $updated = fetch_feed( 'http://wordpress.org/extend/plugins/rss/browse/updated/' ); 
    function wp_dashboard_plugins_output() { 
    9981033                $$feed->__destruct(); 
    9991034                unset($$feed); 
    10001035        } 
     1036        $cache = ob_get_flush(); 
     1037        if ( $cache ) 
     1038                wp_cache_set( 'plugins_output', $cache, 'dashboard', 30*60 ); 
    10011039} 
    10021040 
    10031041/**