WordPress.org

Make WordPress Core

Ticket #11842: 11842.4.diff

File 11842.4.diff, 7.7 KB (added by ShaneF, 8 years ago)
  • wp-includes/general-template.php

     
    111111 * search. To give a few examples of what it can be used for.
    112112 *
    113113 * @since 2.7.0
     114 * @param boolean $echo Default to echo and not return the form.
    114115 */
    115 function get_search_form() {
     116function get_search_form($echo = true) {
    116117        do_action( 'get_search_form' );
    117118
    118119        $search_form_template = locate_template(array('searchform.php'));
     
    128129        </div>
    129130        </form>';
    130131
    131         echo apply_filters('get_search_form', $form);
     132        if ( $echo )
     133                echo apply_filters('get_search_form', $form);
     134        else
     135                return apply_filters('get_search_form', $form);
    132136}
    133137
    134138/**
     
    141145 * @uses apply_filters() Calls 'loginout' hook on HTML link content.
    142146 *
    143147 * @param string $redirect Optional path to redirect to on login/logout.
     148 * @param boolean $echo Default to echo and not return the link.
    144149 */
    145 function wp_loginout($redirect = '') {
     150function wp_loginout($redirect = '', $echo = true) {
    146151        if ( ! is_user_logged_in() )
    147152                $link = '<a href="' . esc_url( wp_login_url($redirect) ) . '">' . __('Log in') . '</a>';
    148153        else
    149154                $link = '<a href="' . esc_url( wp_logout_url($redirect) ) . '">' . __('Log out') . '</a>';
    150 
    151         echo apply_filters('loginout', $link);
     155       
     156        if ( $echo )
     157                echo apply_filters('loginout', $link);
     158        else
     159                return apply_filters('loginout', $link);
    152160}
    153161
    154162/**
     
    280288 *
    281289 * @param string $before Text to output before the link (defaults to <li>).
    282290 * @param string $after Text to output after the link (defaults to </li>).
     291 * @param boolean $echo Default to echo and not return the link.
    283292 */
    284 function wp_register( $before = '<li>', $after = '</li>' ) {
     293function wp_register( $before = '<li>', $after = '</li>', $echo = true ) {
    285294
    286295        if ( ! is_user_logged_in() ) {
    287296                if ( get_option('users_can_register') )
     
    291300        } else {
    292301                $link = $before . '<a href="' . admin_url() . '">' . __('Site Admin') . '</a>' . $after;
    293302        }
    294 
    295         echo apply_filters('register', $link);
     303       
     304        if ( $echo )
     305                echo apply_filters('register', $link);
     306        else
     307                return apply_filters('register', $link);
    296308}
    297309
    298310/**
     
    10011013 * @since 1.0.0
    10021014 *
    10031015 * @param bool $initial Optional, default is true. Use initial calendar names.
     1016 * @param bool $echo Optional, default is true. Set to false for return.
    10041017 */
    1005 function get_calendar($initial = true) {
     1018function get_calendar($initial = true, $echo = true) {
    10061019        global $wpdb, $m, $monthnum, $year, $wp_locale, $posts;
    10071020
    10081021        $cache = array();
    10091022        $key = md5( $m . $monthnum . $year );
    10101023        if ( $cache = wp_cache_get( 'get_calendar', 'calendar' ) ) {
    1011                 if ( is_array($cache) && isset( $cache[ $key ] ) ) {
    1012                         echo $cache[ $key ];
    1013                         return;
     1024                if ( is_array($cache) && isset( $cache[ $key ] ) ) {           
     1025                        if ( $echo )
     1026                                echo apply_filters( 'get_calendar',  $cache[$key] );
     1027                        else
     1028                                return apply_filters( 'get_calendar',  $cache[$key] ); 
    10141029                }
    10151030        }
    10161031
     
    10271042                }
    10281043        }
    10291044
    1030         ob_start();
    10311045        if ( isset($_GET['w']) )
    10321046                $w = ''.intval($_GET['w']);
    10331047
     
    10731087
    10741088        /* translators: Calendar caption: 1: month name, 2: 4-digit year */
    10751089        $calendar_caption = _x('%1$s %2$s', 'calendar caption');
    1076         echo '<table id="wp-calendar" summary="' . esc_attr__('Calendar') . '">
     1090        $calendar_output .= '<table id="wp-calendar" summary="' . esc_attr__('Calendar') . '">
    10771091        <caption>' . sprintf($calendar_caption, $wp_locale->get_month($thismonth), date('Y', $unixmonth)) . '</caption>
    10781092        <thead>
    10791093        <tr>';
     
    10871101        foreach ( $myweek as $wd ) {
    10881102                $day_name = (true == $initial) ? $wp_locale->get_weekday_initial($wd) : $wp_locale->get_weekday_abbrev($wd);
    10891103                $wd = esc_attr($wd);
    1090                 echo "\n\t\t<th abbr=\"$wd\" scope=\"col\" title=\"$wd\">$day_name</th>";
     1104                $calendar_output .= "\n\t\t<th abbr=\"$wd\" scope=\"col\" title=\"$wd\">$day_name</th>";
    10911105        }
    10921106
    1093         echo '
     1107        $calendar_output .= '
    10941108        </tr>
    10951109        </thead>
    10961110
     
    10981112        <tr>';
    10991113
    11001114        if ( $previous ) {
    1101                 echo "\n\t\t".'<td abbr="' . $wp_locale->get_month($previous->month) . '" colspan="3" id="prev"><a href="' .
     1115                $calendar_output .= "\n\t\t".'<td abbr="' . $wp_locale->get_month($previous->month) . '" colspan="3" id="prev"><a href="' .
    11021116                get_month_link($previous->year, $previous->month) . '" title="' . sprintf(__('View posts for %1$s %2$s'), $wp_locale->get_month($previous->month),
    11031117                        date('Y', mktime(0, 0 , 0, $previous->month, 1, $previous->year))) . '">&laquo; ' . $wp_locale->get_month_abbrev($wp_locale->get_month($previous->month)) . '</a></td>';
    11041118        } else {
    1105                 echo "\n\t\t".'<td colspan="3" id="prev" class="pad">&nbsp;</td>';
     1119                $calendar_output .= "\n\t\t".'<td colspan="3" id="prev" class="pad">&nbsp;</td>';
    11061120        }
    11071121
    1108         echo "\n\t\t".'<td class="pad">&nbsp;</td>';
     1122        $calendar_output .= "\n\t\t".'<td class="pad">&nbsp;</td>';
    11091123
    11101124        if ( $next ) {
    1111                 echo "\n\t\t".'<td abbr="' . $wp_locale->get_month($next->month) . '" colspan="3" id="next"><a href="' .
     1125                $calendar_output .= "\n\t\t".'<td abbr="' . $wp_locale->get_month($next->month) . '" colspan="3" id="next"><a href="' .
    11121126                get_month_link($next->year, $next->month) . '" title="' . esc_attr( sprintf(__('View posts for %1$s %2$s'), $wp_locale->get_month($next->month) ,
    11131127                        date('Y', mktime(0, 0 , 0, $next->month, 1, $next->year))) ) . '">' . $wp_locale->get_month_abbrev($wp_locale->get_month($next->month)) . ' &raquo;</a></td>';
    11141128        } else {
    1115                 echo "\n\t\t".'<td colspan="3" id="next" class="pad">&nbsp;</td>';
     1129                $calendar_output .= "\n\t\t".'<td colspan="3" id="next" class="pad">&nbsp;</td>';
    11161130        }
    11171131
    1118         echo '
     1132        $calendar_output .= '
    11191133        </tr>
    11201134        </tfoot>
    11211135
     
    11671181        // See how much we should pad in the beginning
    11681182        $pad = calendar_week_mod(date('w', $unixmonth)-$week_begins);
    11691183        if ( 0 != $pad )
    1170                 echo "\n\t\t".'<td colspan="'. esc_attr($pad) .'" class="pad">&nbsp;</td>';
     1184                $calendar_output .= "\n\t\t".'<td colspan="'. esc_attr($pad) .'" class="pad">&nbsp;</td>';
    11711185
    11721186        $daysinmonth = intval(date('t', $unixmonth));
    11731187        for ( $day = 1; $day <= $daysinmonth; ++$day ) {
    11741188                if ( isset($newrow) && $newrow )
    1175                         echo "\n\t</tr>\n\t<tr>\n\t\t";
     1189                        $calendar_output .= "\n\t</tr>\n\t<tr>\n\t\t";
    11761190                $newrow = false;
    11771191
    11781192                if ( $day == gmdate('j', current_time('timestamp')) && $thismonth == gmdate('m', current_time('timestamp')) && $thisyear == gmdate('Y', current_time('timestamp')) )
    1179                         echo '<td id="today">';
     1193                        $calendar_output .= '<td id="today">';
    11801194                else
    1181                         echo '<td>';
     1195                        $calendar_output .= '<td>';
    11821196
    11831197                if ( in_array($day, $daywithpost) ) // any posts today?
    1184                                 echo '<a href="' . get_day_link($thisyear, $thismonth, $day) . "\" title=\"" . esc_attr($ak_titles_for_day[$day]) . "\">$day</a>";
     1198                                $calendar_output .= '<a href="' . get_day_link($thisyear, $thismonth, $day) . "\" title=\"" . esc_attr($ak_titles_for_day[$day]) . "\">$day</a>";
    11851199                else
    1186                         echo $day;
    1187                 echo '</td>';
     1200                        $calendar_output .= $day;
     1201                $calendar_output .= '</td>';
    11881202
    11891203                if ( 6 == calendar_week_mod(date('w', mktime(0, 0 , 0, $thismonth, $day, $thisyear))-$week_begins) )
    11901204                        $newrow = true;
     
    11921206
    11931207        $pad = 7 - calendar_week_mod(date('w', mktime(0, 0 , 0, $thismonth, $day, $thisyear))-$week_begins);
    11941208        if ( $pad != 0 && $pad != 7 )
    1195                 echo "\n\t\t".'<td class="pad" colspan="'. esc_attr($pad) .'">&nbsp;</td>';
     1209                $calendar_output .= "\n\t\t".'<td class="pad" colspan="'. esc_attr($pad) .'">&nbsp;</td>';
    11961210
    1197         echo "\n\t</tr>\n\t</tbody>\n\t</table>";
     1211        $calendar_output .= "\n\t</tr>\n\t</tbody>\n\t</table>";
    11981212
    1199         $output = ob_get_contents();
    1200         ob_end_clean();
    1201         echo $output;
    12021213        $cache[ $key ] = $output;
    12031214        wp_cache_set( 'get_calendar', $cache, 'calendar' );
     1215
     1216        if ( $echo )
     1217                echo apply_filters( 'get_calendar',  $calendar_output );
     1218        else
     1219                return apply_filters( 'get_calendar',  $calendar_output );
     1220
    12041221}
    12051222
    12061223/**