WordPress.org

Make WordPress Core

Ticket #7463: 7463.1.diff

File 7463.1.diff, 3.4 KB (added by ionfish, 9 years ago)
  • wp-includes/formatting.php

     
    21582158        return $str;
    21592159}
    21602160
     2161/**
     2162 * Implodes an array and adds a final conjuction.
     2163 *
     2164 * Given the array <code>array('John', 'Paul', 'George', 'Ringo')</code> it will
     2165 * return the string <code>'John, Paul, George and Ringo'</code>.
     2166 *
     2167 * @package WordPress
     2168 * @since 2.7
     2169 *
     2170 * @internal
     2171 * @param array $array
     2172 * @param string $glue
     2173 * @param string $conjuction
     2174 * @return string
     2175 */
     2176function _implode_nicely( $array, $glue = ', ', $conjuction = 'and' ) {
     2177        if ( !is_array($array) || count($array) == 0 )
     2178                return;
     2179       
     2180        $last_value = array_pop($array);
     2181       
     2182        if ( count($array) > 0 )
     2183                $output = implode($glue, $array) . " $conjuction $last_value";
     2184        else
     2185                $output = $last_value;
     2186       
     2187        return $output;
     2188}
     2189
    21612190?>
  • wp-includes/general-template.php

     
    581581}
    582582
    583583/**
     584 * Outputs tag titles for tag intersections and unions.
     585 *
     586 * @package WordPress
     587 * @since 2.7
     588 *
     589 * @global $wpdb object
     590 * @param $tag_wrapper string
     591 * @return string
     592 */
     593function multiple_tag_titles($format = '&#8216;%s&#8217;') {
     594        global $wpdb;
     595
     596        if ( !is_tag() )
     597                return;
     598       
     599        if ( $tag_slugs = get_query_var('tag_slug__and') )
     600                $connective = __('and');
     601        elseif ( $tag_slugs = get_query_var('tag_slug__in') )
     602                $connective = __('or');
     603        else
     604                $single_tag = intval( get_query_var('tag_id') );
     605       
     606        $tags = array();
     607        if ( $tag_slugs ) {
     608                foreach ( $tag_slugs as $tag_slug ) {
     609                        $tag = get_term_by('slug', $tag_slug, 'post_tag', OBJECT, 'display');
     610                        if ( !is_wp_error($tag) && !empty($tag->name) )
     611                                $tags[] = $tag->name;
     612                }
     613        } elseif ( $single_tag ) {
     614                $tag = &get_term($single_tag, 'post_tag', OBJECT, 'display');
     615                if ( is_wp_error($tag) || empty($tag->name) )
     616                        return false;
     617                else
     618                        $tags[] = $tag->name;
     619        } else {
     620                return;
     621        }
     622
     623        if ( strlen($format) > 0 ) {
     624                foreach ( $tags as $index => $tag )
     625                        $tags[$index] = sprintf($format, $tag);
     626        }
     627               
     628        $tags = _implode_nicely($tags, __(', '), $connective);
     629        $tags = apply_filters('multiple_tag_titles', $tags);
     630        return $tags;
     631}
     632
     633/**
    584634 * Display or retrieve page title for post archive based on date.
    585635 *
    586636 * Useful for when the template only needs to display the month and year, if
  • wp-content/themes/default/archive.php

     
    1515          <?php /* If this is a category archive */ if (is_category()) { ?>
    1616                <h2 class="pagetitle">Archive for the &#8216;<?php single_cat_title(); ?>&#8217; Category</h2>
    1717          <?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
    18                 <h2 class="pagetitle">Posts Tagged &#8216;<?php single_tag_title(); ?>&#8217;</h2>
     18                <h2 class="pagetitle">Posts Tagged <?php echo multiple_tag_titles(); ?></h2>
    1919          <?php /* If this is a daily archive */ } elseif (is_day()) { ?>
    2020                <h2 class="pagetitle">Archive for <?php the_time('F jS, Y'); ?></h2>
    2121          <?php /* If this is a monthly archive */ } elseif (is_month()) { ?>