Ticket #22400: 22400.general-templates.php.diff
File 22400.general-templates.php.diff, 14.1 KB (added by , 8 years ago) |
---|
-
wp-includes/general-template.php
879 879 ); 880 880 881 881 $r = wp_parse_args( $args, $defaults ); 882 extract( $r, EXTR_SKIP );883 882 884 if ( '' == $ type)885 $ type= 'monthly';883 if ( '' == $r['type'] ) 884 $r['type'] = 'monthly'; 886 885 887 if ( '' != $ limit) {888 $ limit = absint($limit);889 $ limit = ' LIMIT '.$limit;886 if ( '' != $r['limit'] ) { 887 $r['limit'] = absint( $r['limit'] ); 888 $r['limit'] = ' LIMIT '.$r['limit']; 890 889 } 891 890 892 891 $order = strtoupper( $order ); … … 907 906 $archive_week_end_date_format = 'Y/m/d'; 908 907 909 908 if ( !$archive_date_format_over_ride ) { 910 $archive_day_date_format = get_option( 'date_format');911 $archive_week_start_date_format = get_option( 'date_format');912 $archive_week_end_date_format = get_option( 'date_format');909 $archive_day_date_format = get_option( 'date_format' ); 910 $archive_week_start_date_format = get_option( 'date_format' ); 911 $archive_week_end_date_format = get_option( 'date_format' ); 913 912 } 914 913 915 914 //filters … … 918 917 919 918 $output = ''; 920 919 921 if ( 'monthly' == $ type) {922 $query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date $order $limit";923 $key = md5( $query);920 if ( 'monthly' == $r['type'] ) { 921 $query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date $order " . $r['limit']; 922 $key = md5( $query ); 924 923 $cache = wp_cache_get( 'wp_get_archives' , 'general'); 925 924 if ( !isset( $cache[ $key ] ) ) { 926 $arcresults = $wpdb->get_results( $query);925 $arcresults = $wpdb->get_results( $query ); 927 926 $cache[ $key ] = $arcresults; 928 927 wp_cache_set( 'wp_get_archives', $cache, 'general' ); 929 928 } else { 930 929 $arcresults = $cache[ $key ]; 931 930 } 932 931 if ( $arcresults ) { 933 $afterafter = $ after;932 $afterafter = $r['after']; 934 933 foreach ( (array) $arcresults as $arcresult ) { 935 934 $url = get_month_link( $arcresult->year, $arcresult->month ); 936 935 /* translators: 1: month name, 2: 4-digit year */ 937 $text = sprintf( __('%1$s %2$d'), $wp_locale->get_month($arcresult->month), $arcresult->year);938 if ( $ show_post_count)939 $ after= ' ('.$arcresult->posts.')' . $afterafter;940 $output .= get_archives_link( $url, $text, $format, $before, $after);936 $text = sprintf( __( '%1$s %2$d' ), $wp_locale->get_month( $arcresult->month ), $arcresult->year ); 937 if ( $r['show_post_count'] ) 938 $r['after'] = ' ('.$arcresult->posts.')' . $afterafter; 939 $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] ); 941 940 } 942 941 } 943 } elseif ( 'yearly' == $type) {944 $query = "SELECT YEAR(post_date) AS `year`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date) ORDER BY post_date $order $limit";945 $key = md5( $query);942 } elseif ( 'yearly' == $r['type'] ) { 943 $query = "SELECT YEAR(post_date) AS `year`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date) ORDER BY post_date $order " . $r['limit']; 944 $key = md5( $query ); 946 945 $cache = wp_cache_get( 'wp_get_archives' , 'general'); 947 946 if ( !isset( $cache[ $key ] ) ) { 948 $arcresults = $wpdb->get_results( $query);947 $arcresults = $wpdb->get_results( $query ); 949 948 $cache[ $key ] = $arcresults; 950 949 wp_cache_set( 'wp_get_archives', $cache, 'general' ); 951 950 } else { 952 951 $arcresults = $cache[ $key ]; 953 952 } 954 if ( $arcresults) {955 $afterafter = $ after;953 if ( $arcresults ) { 954 $afterafter = $r['after']; 956 955 foreach ( (array) $arcresults as $arcresult) { 957 $url = get_year_link( $arcresult->year);958 $text = sprintf( '%d', $arcresult->year);959 if ($ show_post_count)960 $ after= ' ('.$arcresult->posts.')' . $afterafter;961 $output .= get_archives_link( $url, $text, $format, $before, $after);956 $url = get_year_link( $arcresult->year ); 957 $text = sprintf( '%d', $arcresult->year ); 958 if ($r['show_post_count']) 959 $r['after'] = ' ('.$arcresult->posts.')' . $afterafter; 960 $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] ); 962 961 } 963 962 } 964 } elseif ( 'daily' == $ type) {965 $query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, DAYOFMONTH(post_date) AS `dayofmonth`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date), DAYOFMONTH(post_date) ORDER BY post_date $order $limit";966 $key = md5( $query);963 } elseif ( 'daily' == $r['type'] ) { 964 $query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, DAYOFMONTH(post_date) AS `dayofmonth`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date), DAYOFMONTH(post_date) ORDER BY post_date $order " . $r['limit']; 965 $key = md5( $query ); 967 966 $cache = wp_cache_get( 'wp_get_archives' , 'general'); 968 967 if ( !isset( $cache[ $key ] ) ) { 969 $arcresults = $wpdb->get_results( $query);968 $arcresults = $wpdb->get_results( $query ); 970 969 $cache[ $key ] = $arcresults; 971 970 wp_cache_set( 'wp_get_archives', $cache, 'general' ); 972 971 } else { 973 972 $arcresults = $cache[ $key ]; 974 973 } 975 974 if ( $arcresults ) { 976 $afterafter = $ after;975 $afterafter = $r['after']; 977 976 foreach ( (array) $arcresults as $arcresult ) { 978 $url = get_day_link( $arcresult->year, $arcresult->month, $arcresult->dayofmonth);979 $date = sprintf( '%1$d-%2$02d-%3$02d 00:00:00', $arcresult->year, $arcresult->month, $arcresult->dayofmonth);980 $text = mysql2date( $archive_day_date_format, $date);981 if ( $show_post_count)982 $ after= ' ('.$arcresult->posts.')'.$afterafter;983 $output .= get_archives_link( $url, $text, $format, $before, $after);977 $url = get_day_link( $arcresult->year, $arcresult->month, $arcresult->dayofmonth ); 978 $date = sprintf( '%1$d-%2$02d-%3$02d 00:00:00', $arcresult->year, $arcresult->month, $arcresult->dayofmonth ); 979 $text = mysql2date( $archive_day_date_format, $date ); 980 if ( $r['show_post_count'] ) 981 $r['after'] = ' ('.$arcresult->posts.')'.$afterafter; 982 $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] ); 984 983 } 985 984 } 986 } elseif ( 'weekly' == $ type) {985 } elseif ( 'weekly' == $r['type'] ) { 987 986 $week = _wp_mysql_week( '`post_date`' ); 988 $query = "SELECT DISTINCT $week AS `week`, YEAR( `post_date` ) AS `yr`, DATE_FORMAT( `post_date`, '%Y-%m-%d' ) AS `yyyymmdd`, count( `ID` ) AS `posts` FROM `$wpdb->posts` $join $where GROUP BY $week, YEAR( `post_date` ) ORDER BY `post_date` $order $limit";989 $key = md5( $query);987 $query = "SELECT DISTINCT $week AS `week`, YEAR( `post_date` ) AS `yr`, DATE_FORMAT( `post_date`, '%Y-%m-%d' ) AS `yyyymmdd`, count( `ID` ) AS `posts` FROM `$wpdb->posts` $join $where GROUP BY $week, YEAR( `post_date` ) ORDER BY `post_date` $order " . $r['limit']; 988 $key = md5( $query ); 990 989 $cache = wp_cache_get( 'wp_get_archives' , 'general'); 991 990 if ( !isset( $cache[ $key ] ) ) { 992 $arcresults = $wpdb->get_results( $query);991 $arcresults = $wpdb->get_results( $query ); 993 992 $cache[ $key ] = $arcresults; 994 993 wp_cache_set( 'wp_get_archives', $cache, 'general' ); 995 994 } else { 996 995 $arcresults = $cache[ $key ]; 997 996 } 998 997 $arc_w_last = ''; 999 $afterafter = $ after;998 $afterafter = $r['after']; 1000 999 if ( $arcresults ) { 1001 1000 foreach ( (array) $arcresults as $arcresult ) { 1002 1001 if ( $arcresult->week != $arc_w_last ) { 1003 1002 $arc_year = $arcresult->yr; 1004 1003 $arc_w_last = $arcresult->week; 1005 $arc_week = get_weekstartend( $arcresult->yyyymmdd, get_option('start_of_week'));1006 $arc_week_start = date_i18n( $archive_week_start_date_format, $arc_week['start']);1007 $arc_week_end = date_i18n( $archive_week_end_date_format, $arc_week['end']);1008 $url = sprintf( '%1$s/%2$s%3$sm%4$s%5$s%6$sw%7$s%8$d', home_url(), '', '?', '=', $arc_year, '&', '=', $arcresult->week);1004 $arc_week = get_weekstartend( $arcresult->yyyymmdd, get_option( 'start_of_week' ) ); 1005 $arc_week_start = date_i18n( $archive_week_start_date_format, $arc_week['start'] ); 1006 $arc_week_end = date_i18n( $archive_week_end_date_format, $arc_week['end'] ); 1007 $url = sprintf( '%1$s/%2$s%3$sm%4$s%5$s%6$sw%7$s%8$d', home_url(), '', '?', '=', $arc_year, '&', '=', $arcresult->week ); 1009 1008 $text = $arc_week_start . $archive_week_separator . $arc_week_end; 1010 if ( $show_post_count)1011 $ after= ' ('.$arcresult->posts.')'.$afterafter;1012 $output .= get_archives_link( $url, $text, $format, $before, $after);1009 if ( $r['show_post_count'] ) 1010 $r['after'] = ' ('.$arcresult->posts.')'.$afterafter; 1011 $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] ); 1013 1012 } 1014 1013 } 1015 1014 } 1016 } elseif ( ( 'postbypost' == $ type ) || ('alpha' == $type) ) {1017 $orderby = ( 'alpha' == $type) ? 'post_title ASC ' : 'post_date DESC ';1018 $query = "SELECT * FROM $wpdb->posts $join $where ORDER BY $orderby $limit";1019 $key = md5( $query);1015 } elseif ( ( 'postbypost' == $r['type'] ) || ('alpha' == $r['type']) ) { 1016 $orderby = ( 'alpha' == $r['type'] ) ? 'post_title ASC ' : 'post_date DESC '; 1017 $query = "SELECT * FROM $wpdb->posts $join $where ORDER BY $orderby " . $r['limit']; 1018 $key = md5( $query ); 1020 1019 $cache = wp_cache_get( 'wp_get_archives' , 'general'); 1021 1020 if ( !isset( $cache[ $key ] ) ) { 1022 $arcresults = $wpdb->get_results( $query);1021 $arcresults = $wpdb->get_results( $query ); 1023 1022 $cache[ $key ] = $arcresults; 1024 1023 wp_cache_set( 'wp_get_archives', $cache, 'general' ); 1025 1024 } else { … … 1033 1032 $text = strip_tags( apply_filters( 'the_title', $arcresult->post_title, $arcresult->ID ) ); 1034 1033 else 1035 1034 $text = $arcresult->ID; 1036 $output .= get_archives_link( $url, $text, $format, $before, $after);1035 $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] ); 1037 1036 } 1038 1037 } 1039 1038 } 1040 1039 } 1041 if ( $ echo)1040 if ( $r['echo'] ) 1042 1041 echo $output; 1043 1042 else 1044 1043 return $output; … … 1937 1936 ); 1938 1937 1939 1938 $args = wp_parse_args( $args, $defaults ); 1940 extract($args, EXTR_SKIP);1941 1939 1942 1940 // Who knows what else people pass in $args 1943 $ total = (int) $total;1944 if ( $ total< 2 )1941 $args['total'] = (int) $args['total']; 1942 if ( $args['total'] < 2 ) 1945 1943 return; 1946 $ current = (int) $current;1947 $ end_size = 0 < (int) $end_size ? (int) $end_size: 1; // Out of bounds? Make it the default.1948 $ mid_size = 0 <= (int) $mid_size ? (int) $mid_size: 2;1949 $a dd_args = is_array($add_args) ? $add_args: false;1944 $args['current'] = (int) $args['current']; 1945 $args['end_size'] = 0 < (int) $args['end_size'] ? (int) $args['end_size'] : 1; // Out of bounds? Make it the default. 1946 $args['mid_size'] = 0 <= (int) $args['mid_size'] ? (int) $args['mid_size'] : 2; 1947 $args['add_args'] = is_array( $args['add_args '] ) ? $args['add_args '] : false; 1950 1948 $r = ''; 1951 1949 $page_links = array(); 1952 1950 $n = 0; 1953 1951 $dots = false; 1954 1952 1955 if ( $ prev_next && $current && 1 < $current) :1956 $link = str_replace('%_%', 2 == $ current ? '' : $format, $base);1957 $link = str_replace('%#%', $ current- 1, $link);1958 if ( $a dd_args)1959 $link = add_query_arg( $a dd_args, $link );1960 $link .= $a dd_fragment;1961 $page_links[] = '<a class="prev page-numbers" href="' . esc_url( apply_filters( 'paginate_links', $link ) ) . '">' . $ prev_text. '</a>';1953 if ( $args['prev_next'] && $args['current'] && 1 < $args['current'] ) : 1954 $link = str_replace('%_%', 2 == $args['current'] ? '' : $args['format'], $linkdata['link_category']); 1955 $link = str_replace('%#%', $args['current'] - 1, $link); 1956 if ( $args['add_args '] ) 1957 $link = add_query_arg( $args['add_args '], $link ); 1958 $link .= $args['add_fragment']; 1959 $page_links[] = '<a class="prev page-numbers" href="' . esc_url( apply_filters( 'paginate_links', $link ) ) . '">' . $args['prev_text'] . '</a>'; 1962 1960 endif; 1963 for ( $n = 1; $n <= $ total; $n++ ) :1961 for ( $n = 1; $n <= $args['total']; $n++ ) : 1964 1962 $n_display = number_format_i18n($n); 1965 if ( $n == $ current) :1963 if ( $n == $args['current'] ) : 1966 1964 $page_links[] = "<span class='page-numbers current'>$n_display</span>"; 1967 1965 $dots = true; 1968 1966 else : 1969 if ( $ show_all || ( $n <= $end_size || ( $current && $n >= $current - $mid_size && $n <= $current + $mid_size ) || $n > $total - $end_size) ) :1970 $link = str_replace('%_%', 1 == $n ? '' : $ format, $base);1967 if ( $args['show_all'] || ( $n <= $args['end_size'] || ( $args['current'] && $n >= $args['current'] - $args['mid_size'] && $n <= $args['current'] + $args['mid_size'] ) || $n > $args['total'] - $args['end_size'] ) ) : 1968 $link = str_replace('%_%', 1 == $n ? '' : $args['format'], $args['base']); 1971 1969 $link = str_replace('%#%', $n, $link); 1972 if ( $a dd_args)1973 $link = add_query_arg( $a dd_args, $link );1974 $link .= $a dd_fragment;1970 if ( $args['add_args '] ) 1971 $link = add_query_arg( $args['add_args '], $link ); 1972 $link .= $args['add_fragment']; 1975 1973 $page_links[] = "<a class='page-numbers' href='" . esc_url( apply_filters( 'paginate_links', $link ) ) . "'>$n_display</a>"; 1976 1974 $dots = true; 1977 elseif ( $dots && !$ show_all) :1975 elseif ( $dots && !$args['show_all'] ) : 1978 1976 $page_links[] = '<span class="page-numbers dots">' . __( '…' ) . '</span>'; 1979 1977 $dots = false; 1980 1978 endif; 1981 1979 endif; 1982 1980 endfor; 1983 if ( $ prev_next && $current && ( $current < $total || -1 == $total) ) :1984 $link = str_replace('%_%', $ format, $base);1985 $link = str_replace('%#%', $ current+ 1, $link);1986 if ( $a dd_args)1987 $link = add_query_arg( $a dd_args, $link );1988 $link .= $a dd_fragment;1989 $page_links[] = '<a class="next page-numbers" href="' . esc_url( apply_filters( 'paginate_links', $link ) ) . '">' . $ next_text. '</a>';1981 if ( $args['prev_next'] && $args['current'] && ( $args['current'] < $args['total'] || -1 == $args['total'] ) ) : 1982 $link = str_replace('%_%', $args['format'], $args['base']); 1983 $link = str_replace('%#%', $args['current'] + 1, $link); 1984 if ( $args['add_args '] ) 1985 $link = add_query_arg( $args['add_args '], $link ); 1986 $link .= $args['add_fragment']; 1987 $page_links[] = '<a class="next page-numbers" href="' . esc_url( apply_filters( 'paginate_links', $link ) ) . '">' . $args['next_text'] . '</a>'; 1990 1988 endif; 1991 switch ( $ type) :1989 switch ( $args['type'] ) : 1992 1990 case 'array' : 1993 1991 return $page_links; 1994 1992 break;