_s: Introduce 4.1 archive template tags.

Now uses the new archive template tags and makes archive template
titling way simpler!

Added shims for backwards compatibility, which can be removed once
WordPress 4.3 was released.

See https://core.trac.wordpress.org/changeset/30223
Closes #556.
This commit is contained in:
Konstantin Obenland 2014-11-12 15:51:21 -05:00
parent 6c783cd09f
commit bb867c0fcb
2 changed files with 94 additions and 58 deletions

View File

@ -15,65 +15,9 @@ get_header(); ?>
<?php if ( have_posts() ) : ?>
<header class="page-header">
<h1 class="page-title">
<?php
if ( is_category() ) :
single_cat_title();
elseif ( is_tag() ) :
single_tag_title();
elseif ( is_author() ) :
printf( __( 'Author: %s', '_s' ), '<span class="vcard">' . get_the_author() . '</span>' );
elseif ( is_day() ) :
printf( __( 'Day: %s', '_s' ), '<span>' . get_the_date() . '</span>' );
elseif ( is_month() ) :
printf( __( 'Month: %s', '_s' ), '<span>' . get_the_date( _x( 'F Y', 'monthly archives date format', '_s' ) ) . '</span>' );
elseif ( is_year() ) :
printf( __( 'Year: %s', '_s' ), '<span>' . get_the_date( _x( 'Y', 'yearly archives date format', '_s' ) ) . '</span>' );
elseif ( is_tax( 'post_format', 'post-format-aside' ) ) :
_e( 'Asides', '_s' );
elseif ( is_tax( 'post_format', 'post-format-gallery' ) ) :
_e( 'Galleries', '_s' );
elseif ( is_tax( 'post_format', 'post-format-image' ) ) :
_e( 'Images', '_s' );
elseif ( is_tax( 'post_format', 'post-format-video' ) ) :
_e( 'Videos', '_s' );
elseif ( is_tax( 'post_format', 'post-format-quote' ) ) :
_e( 'Quotes', '_s' );
elseif ( is_tax( 'post_format', 'post-format-link' ) ) :
_e( 'Links', '_s' );
elseif ( is_tax( 'post_format', 'post-format-status' ) ) :
_e( 'Statuses', '_s' );
elseif ( is_tax( 'post_format', 'post-format-audio' ) ) :
_e( 'Audios', '_s' );
elseif ( is_tax( 'post_format', 'post-format-chat' ) ) :
_e( 'Chats', '_s' );
else :
_e( 'Archives', '_s' );
endif;
?>
</h1>
<?php
// Show an optional term description.
$term_description = term_description();
if ( ! empty( $term_description ) ) :
printf( '<div class="taxonomy-description">%s</div>', $term_description );
endif;
the_archive_title( '<h1 class="page-title">', '</h1>' );
the_archive_description( '<div class="taxonomy-description">', '</div>' );
?>
</header><!-- .page-header -->

View File

@ -123,6 +123,98 @@ function _s_entry_footer() {
}
endif;
if ( ! function_exists( 'the_archive_title' ) ) :
/**
* Shim for `the_archive_title()`.
*
* Display the archive title based on the queried object.
*
* @todo Remove this function when WordPress 4.3 is released.
*
* @param string $before Optional. Content to prepend to the title. Default empty.
* @param string $after Optional. Content to append to the title. Default empty.
*/
function the_archive_title( $before = '', $after = '' ) {
if ( is_category() ) {
$title = sprintf( __( 'Category: %s', '_s' ), single_cat_title( '', false ) );
} elseif ( is_tag() ) {
$title = sprintf( __( 'Tag: %s', '_s' ), single_tag_title( '', false ) );
} elseif ( is_author() ) {
$title = sprintf( __( 'Author: %s', '_s' ), '<span class="vcard">' . get_the_author() . '</span>' );
} elseif ( is_year() ) {
$title = sprintf( __( 'Year: %s', '_s' ), get_the_date( _x( 'Y', 'yearly archives date format', '_s' ) ) );
} elseif ( is_month() ) {
$title = sprintf( __( 'Month: %s', '_s' ), get_the_date( _x( 'F Y', 'monthly archives date format', '_s' ) ) );
} elseif ( is_day() ) {
$title = sprintf( __( 'Day: %s', '_s' ), get_the_date( _x( 'F j, Y', 'daily archives date format', '_s' ) ) );
} elseif ( is_tax( 'post_format', 'post-format-aside' ) ) {
$title = _x( 'Asides', 'post format archive title', '_s' );
} elseif ( is_tax( 'post_format', 'post-format-gallery' ) ) {
$title = _x( 'Galleries', 'post format archive title', '_s' );
} elseif ( is_tax( 'post_format', 'post-format-image' ) ) {
$title = _x( 'Images', 'post format archive title', '_s' );
} elseif ( is_tax( 'post_format', 'post-format-video' ) ) {
$title = _x( 'Videos', 'post format archive title', '_s' );
} elseif ( is_tax( 'post_format', 'post-format-quote' ) ) {
$title = _x( 'Quotes', 'post format archive title', '_s' );
} elseif ( is_tax( 'post_format', 'post-format-link' ) ) {
$title = _x( 'Links', 'post format archive title', '_s' );
} elseif ( is_tax( 'post_format', 'post-format-status' ) ) {
$title = _x( 'Statuses', 'post format archive title', '_s' );
} elseif ( is_tax( 'post_format', 'post-format-audio' ) ) {
$title = _x( 'Audio', 'post format archive title', '_s' );
} elseif ( is_tax( 'post_format', 'post-format-chat' ) ) {
$title = _x( 'Chats', 'post format archive title', '_s' );
} elseif ( is_post_type_archive() ) {
$title = sprintf( __( 'Archives: %s', '_s' ), post_type_archive_title( '', false ) );
} elseif ( is_tax() ) {
$tax = get_taxonomy( get_queried_object()->taxonomy );
/* translators: 1: Taxonomy singular name, 2: Current taxonomy term */
$title = sprintf( __( '%1$s: %2$s', '_s' ), $tax->labels->singular_name, single_term_title( '', false ) );
} else {
$title = __( 'Archives', '_s' );
}
/**
* Filter the archive title.
*
* @param string $title Archive title to be displayed.
*/
$title = apply_filters( 'get_the_archive_title', $title );
if ( ! empty( $title ) ) {
echo $before . $title . $after;
}
}
endif;
if ( ! function_exists( 'the_archive_description' ) ) :
/**
* Shim for `the_archive_description()`.
*
* Display category, tag, or term description.
*
* @todo Remove this function when WordPress 4.3 is released.
*
* @param string $before Optional. Content to prepend to the description. Default empty.
* @param string $after Optional. Content to append to the description. Default empty.
*/
function the_archive_description( $before = '', $after = '' ) {
$description = apply_filters( 'get_the_archive_description', term_description() );
if ( ! empty( $description ) ) {
/**
* Filter the archive description.
*
* @see term_description()
*
* @param string $description Archive description to be displayed.
*/
echo $before . $description . $after;
}
}
endif;
/**
* Returns true if a blog has more than 1 category.
*