$link = $before . '<a href="' . admin_url() . '">' . __('Site Admin') . '</a>' . $after;
}
+ /**
+ * Filter the HTML link to the Registration or Admin page.
+ *
+ * Users are sent to the admin page if logged-in, or the registration page
+ * if enabled and logged-out.
+ *
+ * @since 1.5.0
+ *
+ * @param string $link The HTML code for the link to the Registration or Admin page.
+ */
+ $link = apply_filters( 'register', $link );
+
if ( $echo ) {
- /**
- * Filter the HTML link to the Registration or Admin page.
- *
- * Users are sent to the admin page if logged-in, or the registration page
- * if enabled and logged-out.
- *
- * @since 1.5.0
- *
- * @param string $link The HTML code for the link to the Registration or Admin page.
- */
- echo apply_filters( 'register', $link );
+ echo $link;
} else {
- /** This filter is documented in wp-includes/general-template.php */
- return apply_filters( 'register', $link );
+ return $link;
}
}
* @return string|null String on retrieve, null when displaying.
*/
function wp_title($sep = '»', $display = true, $seplocation = '') {
- global $wpdb, $wp_locale;
+ global $wp_locale;
$m = get_query_var('m');
$year = get_query_var('year');
}
// If there's an author
- if ( is_author() ) {
+ if ( is_author() && ! is_post_type_archive() ) {
$author = get_queried_object();
if ( $author )
$title = $author->display_name;
if ( !empty($title) )
$prefix = " $sep ";
+ /**
+ * Filter the parts of the page title.
+ *
+ * @since 4.0.0
+ *
+ * @param array $title_array Parts of the page title.
+ */
+ $title_array = apply_filters( 'wp_title_parts', explode( $t_sep, $title ) );
+
// Determines position of the separator and direction of the breadcrumb
if ( 'right' == $seplocation ) { // sep on right, so reverse the order
- $title_array = explode( $t_sep, $title );
$title_array = array_reverse( $title_array );
$title = implode( " $sep ", $title_array ) . $prefix;
} else {
- $title_array = explode( $t_sep, $title );
$title = $prefix . implode( " $sep ", $title_array );
}
/**
* Display archive links based on type and format.
*
- * The 'type' argument offers a few choices and by default will display monthly
- * archive links. The other options for values are 'daily', 'weekly', 'monthly',
- * 'yearly', 'postbypost' or 'alpha'. Both 'postbypost' and 'alpha' display the
- * same archive link list, the difference between the two is that 'alpha'
- * will order by post title and 'postbypost' will order by post date.
- *
- * The date archives will logically display dates with links to the archive post
- * page. The 'postbypost' and 'alpha' values for 'type' argument will display
- * the post titles.
- *
- * The 'limit' argument will only display a limited amount of links, specified
- * by the 'limit' integer value. By default, there is no limit. The
- * 'show_post_count' argument will show how many posts are within the archive.
- * By default, the 'show_post_count' argument is set to false.
- *
- * For the 'format', 'before', and 'after' arguments, see {@link
- * get_archives_link()}. The values of these arguments have to do with that
- * function.
- *
* @since 1.2.0
*
- * @param string|array $args Optional. Override defaults.
+ * @see get_archives_link()
+ *
+ * @param string|array $args {
+ * Default archive links arguments. Optional.
+ *
+ * @type string $type Type of archive to retrieve. Accepts 'daily', 'weekly', 'monthly',
+ * 'yearly', 'postbypost', or 'alpha'. Both 'postbypost' and 'alpha'
+ * display the same archive link list as well as post titles instead
+ * of displaying dates. The difference between the two is that 'alpha'
+ * will order by post title and 'postbypost' will order by post date.
+ * Default 'monthly'.
+ * @type string|int $limit Number of links to limit the query to. Default empty (no limit).
+ * @type string $format Format each link should take using the $before and $after args.
+ * Accepts 'link' (`<link>` tag), 'option' (`<option>` tag), 'html'
+ * (`<li>` tag), or a custom format, which generates a link anchor
+ * with $before preceding and $after succeeding. Default 'html'.
+ * @type string $before Markup to prepend to the beginning of each link. Default empty.
+ * @type string $after Markup to append to the end of each link. Default empty.
+ * @type bool $show_post_count Whether to display the post count alongside the link. Default false.
+ * @type bool $echo Whether to echo or return the links list. Default 1|true to echo.
+ * @type string $order Whether to use ascending or descending order. Accepts 'ASC', or 'DESC'.
+ * Default 'DESC'.
+ * }
* @return string|null String when retrieving, null when displaying.
*/
-function wp_get_archives($args = '') {
+function wp_get_archives( $args = '' ) {
global $wpdb, $wp_locale;
$defaults = array(
);
$r = wp_parse_args( $args, $defaults );
- extract( $r, EXTR_SKIP );
- if ( '' == $type )
- $type = 'monthly';
+ if ( '' == $r['type'] ) {
+ $r['type'] = 'monthly';
+ }
- if ( '' != $limit ) {
- $limit = absint($limit);
- $limit = ' LIMIT '.$limit;
+ if ( ! empty( $r['limit'] ) ) {
+ $r['limit'] = absint( $r['limit'] );
+ $r['limit'] = ' LIMIT ' . $r['limit'];
}
- $order = strtoupper( $order );
- if ( $order !== 'ASC' )
+ $order = strtoupper( $r['order'] );
+ if ( $order !== 'ASC' ) {
$order = 'DESC';
+ }
// this is what will separate dates on weekly archive links
$archive_week_separator = '–';
$archive_week_start_date_format = 'Y/m/d';
$archive_week_end_date_format = 'Y/m/d';
- if ( !$archive_date_format_over_ride ) {
- $archive_day_date_format = get_option('date_format');
- $archive_week_start_date_format = get_option('date_format');
- $archive_week_end_date_format = get_option('date_format');
+ if ( ! $archive_date_format_over_ride ) {
+ $archive_day_date_format = get_option( 'date_format' );
+ $archive_week_start_date_format = get_option( 'date_format' );
+ $archive_week_end_date_format = get_option( 'date_format' );
}
/**
wp_cache_set( 'last_changed', $last_changed, 'posts' );
}
- if ( 'monthly' == $type ) {
+ $limit = $r['limit'];
+
+ if ( 'monthly' == $r['type'] ) {
$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";
$key = md5( $query );
$key = "wp_get_archives:$key:$last_changed";
wp_cache_set( $key, $results, 'posts' );
}
if ( $results ) {
- $afterafter = $after;
+ $after = $r['after'];
foreach ( (array) $results as $result ) {
$url = get_month_link( $result->year, $result->month );
/* translators: 1: month name, 2: 4-digit year */
- $text = sprintf(__('%1$s %2$d'), $wp_locale->get_month($result->month), $result->year);
- if ( $show_post_count )
- $after = ' ('.$result->posts.')' . $afterafter;
- $output .= get_archives_link($url, $text, $format, $before, $after);
+ $text = sprintf( __( '%1$s %2$d' ), $wp_locale->get_month( $result->month ), $result->year );
+ if ( $r['show_post_count'] ) {
+ $r['after'] = ' (' . $result->posts . ')' . $after;
+ }
+ $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] );
}
}
- } elseif ('yearly' == $type) {
+ } elseif ( 'yearly' == $r['type'] ) {
$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";
$key = md5( $query );
$key = "wp_get_archives:$key:$last_changed";
wp_cache_set( $key, $results, 'posts' );
}
if ( $results ) {
- $afterafter = $after;
+ $after = $r['after'];
foreach ( (array) $results as $result) {
- $url = get_year_link($result->year);
- $text = sprintf('%d', $result->year);
- if ($show_post_count)
- $after = ' ('.$result->posts.')' . $afterafter;
- $output .= get_archives_link($url, $text, $format, $before, $after);
+ $url = get_year_link( $result->year );
+ $text = sprintf( '%d', $result->year );
+ if ( $r['show_post_count'] ) {
+ $r['after'] = ' (' . $result->posts . ')' . $after;
+ }
+ $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] );
}
}
- } elseif ( 'daily' == $type ) {
+ } elseif ( 'daily' == $r['type'] ) {
$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";
$key = md5( $query );
$key = "wp_get_archives:$key:$last_changed";
wp_cache_set( $key, $results, 'posts' );
}
if ( $results ) {
- $afterafter = $after;
+ $after = $r['after'];
foreach ( (array) $results as $result ) {
- $url = get_day_link($result->year, $result->month, $result->dayofmonth);
- $date = sprintf('%1$d-%2$02d-%3$02d 00:00:00', $result->year, $result->month, $result->dayofmonth);
- $text = mysql2date($archive_day_date_format, $date);
- if ($show_post_count)
- $after = ' ('.$result->posts.')'.$afterafter;
- $output .= get_archives_link($url, $text, $format, $before, $after);
+ $url = get_day_link( $result->year, $result->month, $result->dayofmonth );
+ $date = sprintf( '%1$d-%2$02d-%3$02d 00:00:00', $result->year, $result->month, $result->dayofmonth );
+ $text = mysql2date( $archive_day_date_format, $date );
+ if ( $r['show_post_count'] ) {
+ $r['after'] = ' (' . $result->posts . ')' . $after;
+ }
+ $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] );
}
}
- } elseif ( 'weekly' == $type ) {
+ } elseif ( 'weekly' == $r['type'] ) {
$week = _wp_mysql_week( '`post_date`' );
$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";
$key = md5( $query );
wp_cache_set( $key, $results, 'posts' );
}
$arc_w_last = '';
- $afterafter = $after;
if ( $results ) {
- foreach ( (array) $results as $result ) {
- if ( $result->week != $arc_w_last ) {
- $arc_year = $result->yr;
- $arc_w_last = $result->week;
- $arc_week = get_weekstartend($result->yyyymmdd, get_option('start_of_week'));
- $arc_week_start = date_i18n($archive_week_start_date_format, $arc_week['start']);
- $arc_week_end = date_i18n($archive_week_end_date_format, $arc_week['end']);
- $url = sprintf('%1$s/%2$s%3$sm%4$s%5$s%6$sw%7$s%8$d', home_url(), '', '?', '=', $arc_year, '&', '=', $result->week);
- $text = $arc_week_start . $archive_week_separator . $arc_week_end;
- if ($show_post_count)
- $after = ' ('.$result->posts.')'.$afterafter;
- $output .= get_archives_link($url, $text, $format, $before, $after);
+ $after = $r['after'];
+ foreach ( (array) $results as $result ) {
+ if ( $result->week != $arc_w_last ) {
+ $arc_year = $result->yr;
+ $arc_w_last = $result->week;
+ $arc_week = get_weekstartend( $result->yyyymmdd, get_option( 'start_of_week' ) );
+ $arc_week_start = date_i18n( $archive_week_start_date_format, $arc_week['start'] );
+ $arc_week_end = date_i18n( $archive_week_end_date_format, $arc_week['end'] );
+ $url = sprintf( '%1$s/%2$s%3$sm%4$s%5$s%6$sw%7$s%8$d', home_url(), '', '?', '=', $arc_year, '&', '=', $result->week );
+ $text = $arc_week_start . $archive_week_separator . $arc_week_end;
+ if ( $r['show_post_count'] ) {
+ $r['after'] = ' (' . $result->posts . ')' . $after;
}
+ $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] );
}
+ }
}
- } elseif ( ( 'postbypost' == $type ) || ('alpha' == $type) ) {
- $orderby = ('alpha' == $type) ? 'post_title ASC ' : 'post_date DESC ';
+ } elseif ( ( 'postbypost' == $r['type'] ) || ('alpha' == $r['type'] ) ) {
+ $orderby = ( 'alpha' == $r['type'] ) ? 'post_title ASC ' : 'post_date DESC ';
$query = "SELECT * FROM $wpdb->posts $join $where ORDER BY $orderby $limit";
$key = md5( $query );
$key = "wp_get_archives:$key:$last_changed";
if ( $results ) {
foreach ( (array) $results as $result ) {
if ( $result->post_date != '0000-00-00 00:00:00' ) {
- $url = get_permalink( $result );
+ $url = get_permalink( $result );
if ( $result->post_title ) {
/** This filter is documented in wp-includes/post-template.php */
$text = strip_tags( apply_filters( 'the_title', $result->post_title, $result->ID ) );
} else {
$text = $result->ID;
}
- $output .= get_archives_link($url, $text, $format, $before, $after);
+ $output .= get_archives_link( $url, $text, $r['format'], $r['before'], $r['after'] );
}
}
}
}
- if ( $echo )
+ if ( $r['echo'] ) {
echo $output;
- else
+ } else {
return $output;
+ }
}
/**
function get_calendar($initial = true, $echo = true) {
global $wpdb, $m, $monthnum, $year, $wp_locale, $posts;
- $cache = array();
$key = md5( $m . $monthnum . $year );
if ( $cache = wp_cache_get( 'get_calendar', 'calendar' ) ) {
if ( is_array($cache) && isset( $cache[ $key ] ) ) {
<tr>';
if ( $previous ) {
- $calendar_output .= "\n\t\t".'<td colspan="3" id="prev"><a href="' . get_month_link($previous->year, $previous->month) . '" title="' . esc_attr( sprintf(__('View posts for %1$s %2$s'), $wp_locale->get_month($previous->month), date('Y', mktime(0, 0 , 0, $previous->month, 1, $previous->year)))) . '">« ' . $wp_locale->get_month_abbrev($wp_locale->get_month($previous->month)) . '</a></td>';
+ $calendar_output .= "\n\t\t".'<td colspan="3" id="prev"><a href="' . get_month_link($previous->year, $previous->month) . '">« ' . $wp_locale->get_month_abbrev($wp_locale->get_month($previous->month)) . '</a></td>';
} else {
$calendar_output .= "\n\t\t".'<td colspan="3" id="prev" class="pad"> </td>';
}
$calendar_output .= "\n\t\t".'<td class="pad"> </td>';
if ( $next ) {
- $calendar_output .= "\n\t\t".'<td colspan="3" id="next"><a href="' . get_month_link($next->year, $next->month) . '" title="' . esc_attr( sprintf(__('View posts for %1$s %2$s'), $wp_locale->get_month($next->month), date('Y', mktime(0, 0 , 0, $next->month, 1, $next->year))) ) . '">' . $wp_locale->get_month_abbrev($wp_locale->get_month($next->month)) . ' »</a></td>';
+ $calendar_output .= "\n\t\t".'<td colspan="3" id="next"><a href="' . get_month_link($next->year, $next->month) . '">' . $wp_locale->get_month_abbrev($wp_locale->get_month($next->month)) . ' »</a></td>';
} else {
$calendar_output .= "\n\t\t".'<td colspan="3" id="next" class="pad"> </td>';
}
*
* @param string $d Optional. PHP date format defaults to the date_format option if not specified.
* @param int|WP_Post $post Optional. Post ID or WP_Post object. Default current post.
- * @return string Date the current post was written.
+ * @return string|bool Date the current post was written. False on failure.
*/
function get_the_date( $d = '', $post = null ) {
$post = get_post( $post );
+ if ( ! $post ) {
+ return false;
+ }
+
if ( '' == $d ) {
$the_date = mysql2date( get_option( 'date_format' ), $post->post_date );
} else {
* was written. Either 'G', 'U', or php date format defaults
* to the value specified in the time_format option. Default empty.
* @param int|WP_Post $post WP_Post object or ID. Default is global $post object.
- * @return string|int Formatted date string, or Unix timestamp.
+ * @return string|int|bool Formatted date string or Unix timestamp. False on failure.
*/
function get_the_time( $d = '', $post = null ) {
$post = get_post($post);
+ if ( ! $post ) {
+ return false;
+ }
+
if ( '' == $d )
$the_time = get_post_time(get_option('time_format'), false, $post, true);
else
* @param bool $gmt Optional. Whether to retrieve the GMT time. Default false.
* @param int|WP_Post $post WP_Post object or ID. Default is global $post object.
* @param bool $translate Whether to translate the time string. Default false.
- * @return string|int Formatted date string, or Unix timestamp.
+ * @return string|int|bool Formatted date string or Unix timestamp. False on failure.
*/
function get_post_time( $d = 'U', $gmt = false, $post = null, $translate = false ) {
$post = get_post($post);
+ if ( ! $post ) {
+ return false;
+ }
+
if ( $gmt )
$time = $post->post_date_gmt;
else
*
* @since 2.0.0
*
- * @param string $d Optional, default is 'U'. Either 'G', 'U', or php date format.
- * @param bool $gmt Optional, default is false. Whether to return the gmt time.
- * @param int|object $post Optional, default is global post object. A post_id or post object
- * @param bool $translate Optional, default is false. Whether to translate the result
- * @return string Returns timestamp
+ * @param string $d Optional. Format to use for retrieving the time the post
+ * was modified. Either 'G', 'U', or php date format. Default 'U'.
+ * @param bool $gmt Optional. Whether to retrieve the GMT time. Default false.
+ * @param int|WP_Post $post WP_Post object or ID. Default is global $post object.
+ * @param bool $translate Whether to translate the time string. Default false.
+ * @return string|int|bool Formatted date string or Unix timestamp. False on failure.
*/
function get_post_modified_time( $d = 'U', $gmt = false, $post = null, $translate = false ) {
$post = get_post($post);
+ if ( ! $post ) {
+ return false;
+ }
+
if ( $gmt )
$time = $post->post_modified_gmt;
else
*
* @since 0.71
*
- * @param string $the_weekday
+ * @param string $the_weekday
*/
$the_weekday = apply_filters( 'the_weekday', $the_weekday );
echo $the_weekday;
*
* @since 0.71
*
- * @param string $the_weekday_date
+ * @param string $the_weekday_date
* @param string $before The HTML to output before the date.
* @param string $after The HTML to output after the date.
*/
* @since 2.3.1
*/
function wlwmanifest_link() {
- echo '<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="'
- . get_bloginfo('wpurl') . '/wp-includes/wlwmanifest.xml" /> ' . "\n";
+ echo '<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="',
+ includes_url( 'wlwmanifest.xml' ), '" /> ', "\n";
}
/**
*/
function wp_default_editor() {
$r = user_can_richedit() ? 'tinymce' : 'html'; // defaults
- if ( $user = wp_get_current_user() ) { // look for cookie
+ if ( wp_get_current_user() ) { // look for cookie
$ed = get_user_setting('editor', 'tinymce');
$r = ( in_array($ed, array('tinymce', 'html', 'test') ) ) ? $ed : $r;
}
*/
function language_attributes($doctype = 'html') {
$attributes = array();
- $output = '';
if ( function_exists( 'is_rtl' ) && is_rtl() )
$attributes[] = 'dir="rtl"';
* It is possible to add query vars to the link by using the 'add_args' argument
* and see {@link add_query_arg()} for more information.
*
- * The 'before_page_number' and 'after_page_number' arguments allow users to
+ * The 'before_page_number' and 'after_page_number' arguments allow users to
* augment the links themselves. Typically this might be to add context to the
* numbered links so that screen reader users understand what the links are for.
- * The text strings are added before and after the page number - within the
+ * The text strings are added before and after the page number - within the
* anchor tag.
*
* @since 2.1.0
* @return array|string String of page links or array of page links.
*/
function paginate_links( $args = '' ) {
+ global $wp_query, $wp_rewrite;
+
+ $total = ( isset( $wp_query->max_num_pages ) ) ? $wp_query->max_num_pages : 1;
+ $current = ( get_query_var( 'paged' ) ) ? intval( get_query_var( 'paged' ) ) : 1;
+ $pagenum_link = html_entity_decode( get_pagenum_link() );
+ $query_args = array();
+ $url_parts = explode( '?', $pagenum_link );
+
+ if ( isset( $url_parts[1] ) ) {
+ wp_parse_str( $url_parts[1], $query_args );
+ }
+
+ $pagenum_link = remove_query_arg( array_keys( $query_args ), $pagenum_link );
+ $pagenum_link = trailingslashit( $pagenum_link ) . '%_%';
+
+ $format = $wp_rewrite->using_index_permalinks() && ! strpos( $pagenum_link, 'index.php' ) ? 'index.php/' : '';
+ $format .= $wp_rewrite->using_permalinks() ? user_trailingslashit( $wp_rewrite->pagination_base . '/%#%', 'paged' ) : '?paged=%#%';
+
$defaults = array(
- 'base' => '%_%', // http://example.com/all_posts.php%_% : %_% is replaced by format (below)
- 'format' => '?page=%#%', // ?page=%#% : %#% is replaced by the page number
- 'total' => 1,
- 'current' => 0,
+ 'base' => $pagenum_link, // http://example.com/all_posts.php%_% : %_% is replaced by format (below)
+ 'format' => $format, // ?page=%#% : %#% is replaced by the page number
+ 'total' => $total,
+ 'current' => $current,
'show_all' => false,
'prev_next' => true,
'prev_text' => __('« Previous'),
);
$args = wp_parse_args( $args, $defaults );
- extract($args, EXTR_SKIP);
// Who knows what else people pass in $args
- $total = (int) $total;
- if ( $total < 2 )
+ $total = (int) $args['total'];
+ if ( $total < 2 ) {
return;
- $current = (int) $current;
- $end_size = 0 < (int) $end_size ? (int) $end_size : 1; // Out of bounds? Make it the default.
- $mid_size = 0 <= (int) $mid_size ? (int) $mid_size : 2;
- $add_args = is_array($add_args) ? $add_args : false;
+ }
+ $current = (int) $args['current'];
+ $end_size = (int) $args['end_size']; // Out of bounds? Make it the default.
+ if ( $end_size < 1 ) {
+ $end_size = 1;
+ }
+ $mid_size = (int) $args['mid_size'];
+ if ( $mid_size < 0 ) {
+ $mid_size = 2;
+ }
+ $add_args = is_array( $args['add_args'] ) ? $args['add_args'] : false;
$r = '';
$page_links = array();
- $n = 0;
$dots = false;
- if ( $prev_next && $current && 1 < $current ) :
- $link = str_replace('%_%', 2 == $current ? '' : $format, $base);
- $link = str_replace('%#%', $current - 1, $link);
+ if ( $args['prev_next'] && $current && 1 < $current ) :
+ $link = str_replace( '%_%', 2 == $current ? '' : $args['format'], $args['base'] );
+ $link = str_replace( '%#%', $current - 1, $link );
if ( $add_args )
$link = add_query_arg( $add_args, $link );
- $link .= $add_fragment;
+ $link .= $args['add_fragment'];
/**
* Filter the paginated links for the given archive pages.
*
* @param string $link The paginated link URL.
*/
- $page_links[] = '<a class="prev page-numbers" href="' . esc_url( apply_filters( 'paginate_links', $link ) ) . '">' . $prev_text . '</a>';
+ $page_links[] = '<a class="prev page-numbers" href="' . esc_url( apply_filters( 'paginate_links', $link ) ) . '">' . $args['prev_text'] . '</a>';
endif;
for ( $n = 1; $n <= $total; $n++ ) :
if ( $n == $current ) :
- $page_links[] = "<span class='page-numbers current'>" . $before_page_number . number_format_i18n( $n ) . $after_page_number . "</span>";
+ $page_links[] = "<span class='page-numbers current'>" . $args['before_page_number'] . number_format_i18n( $n ) . $args['after_page_number'] . "</span>";
$dots = true;
else :
- if ( $show_all || ( $n <= $end_size || ( $current && $n >= $current - $mid_size && $n <= $current + $mid_size ) || $n > $total - $end_size ) ) :
- $link = str_replace('%_%', 1 == $n ? '' : $format, $base);
- $link = str_replace('%#%', $n, $link);
+ if ( $args['show_all'] || ( $n <= $end_size || ( $current && $n >= $current - $mid_size && $n <= $current + $mid_size ) || $n > $total - $end_size ) ) :
+ $link = str_replace( '%_%', 1 == $n ? '' : $args['format'], $args['base'] );
+ $link = str_replace( '%#%', $n, $link );
if ( $add_args )
$link = add_query_arg( $add_args, $link );
- $link .= $add_fragment;
+ $link .= $args['add_fragment'];
/** This filter is documented in wp-includes/general-template.php */
- $page_links[] = "<a class='page-numbers' href='" . esc_url( apply_filters( 'paginate_links', $link ) ) . "'>" . $before_page_number . number_format_i18n( $n ) . $after_page_number . "</a>";
+ $page_links[] = "<a class='page-numbers' href='" . esc_url( apply_filters( 'paginate_links', $link ) ) . "'>" . $args['before_page_number'] . number_format_i18n( $n ) . $args['after_page_number'] . "</a>";
$dots = true;
- elseif ( $dots && !$show_all ) :
+ elseif ( $dots && ! $args['show_all'] ) :
$page_links[] = '<span class="page-numbers dots">' . __( '…' ) . '</span>';
$dots = false;
endif;
endif;
endfor;
- if ( $prev_next && $current && ( $current < $total || -1 == $total ) ) :
- $link = str_replace('%_%', $format, $base);
- $link = str_replace('%#%', $current + 1, $link);
+ if ( $args['prev_next'] && $current && ( $current < $total || -1 == $total ) ) :
+ $link = str_replace( '%_%', $args['format'], $args['base'] );
+ $link = str_replace( '%#%', $current + 1, $link );
if ( $add_args )
$link = add_query_arg( $add_args, $link );
- $link .= $add_fragment;
+ $link .= $args['add_fragment'];
/** This filter is documented in wp-includes/general-template.php */
- $page_links[] = '<a class="next page-numbers" href="' . esc_url( apply_filters( 'paginate_links', $link ) ) . '">' . $next_text . '</a>';
+ $page_links[] = '<a class="next page-numbers" href="' . esc_url( apply_filters( 'paginate_links', $link ) ) . '">' . $args['next_text'] . '</a>';
endif;
- switch ( $type ) :
+ switch ( $args['type'] ) {
case 'array' :
return $page_links;
- break;
+
case 'list' :
$r .= "<ul class='page-numbers'>\n\t<li>";
$r .= join("</li>\n\t<li>", $page_links);
$r .= "</li>\n</ul>\n";
break;
+
default :
$r = join("\n", $page_links);
break;
- endswitch;
+ }
return $r;
}