WordPress.org

Make WordPress Core

Ticket #7463: 7463.3.diff

File 7463.3.diff, 3.4 KB (added by ionfish, 5 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.8 
     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.8 
     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()) { ?>