From bb867c0fcb2cfbae298d44a87c0638c75b8739f8 Mon Sep 17 00:00:00 2001 From: Konstantin Obenland Date: Wed, 12 Nov 2014 15:51:21 -0500 Subject: [PATCH] _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. --- archive.php | 60 +--------------------------- inc/template-tags.php | 92 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 58 deletions(-) diff --git a/archive.php b/archive.php index e359309e..3d0efcc9 100644 --- a/archive.php +++ b/archive.php @@ -15,65 +15,9 @@ get_header(); ?> diff --git a/inc/template-tags.php b/inc/template-tags.php index faf1ffd8..ae9c5905 100644 --- a/inc/template-tags.php +++ b/inc/template-tags.php @@ -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' ), '' . get_the_author() . '' ); + } 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. *