Make WordPress Core

Ticket #33755: 33755.15.diff

File 33755.15.diff, 5.5 KB (added by obenland, 8 years ago)

Show/hide header text

  • src/wp-admin/includes/class-wp-custom-logo.php

     
    2121         * @access public
    2222         */
    2323        public function __construct() {
    24                 add_action( 'wp_head', array( $this, 'head_text_styles' ) );
    2524                add_action( 'delete_attachment', array( $this, 'delete_attachment_data' ) );
    2625        }
    2726
    2827        /**
    29          * Hides header text on the front end if necessary.
    30          *
    31          * @since 4.5.0
    32          * @access public
    33          */
    34         public function head_text_styles() {
    35                 // Bail if our theme supports custom headers.
    36                 if ( current_theme_supports( 'custom-header' ) || get_theme_mod( 'custom_logo_header_text', true ) ) {
    37                         return;
    38                 }
    39 
    40                 // Is Display Header Text unchecked? If so, hide the header text.
    41                 ?>
    42                 <!-- Custom Logo: hide header text -->
    43                 <style type="text/css">
    44                         <?php echo sanitize_html_class( $this->header_text_classes() ); ?>  {
    45                                 position: absolute;
    46                                 clip: rect(1px, 1px, 1px, 1px);
    47                         }
    48                 </style>
    49                 <?php
    50         }
    51 
    52         /**
    5328         * Reset the custom logo if the current logo is deleted in the media manager.
    5429         *
    5530         * @since 4.5.0
     
    6439                        remove_theme_mod( 'custom_logo' );
    6540                }
    6641        }
    67 
    68         /**
    69          * Retrieves the header text classes.
    70          *
    71          * If not defined in add_theme_support(), defaults from Underscores will be used.
    72          *
    73          * @since 4.5.0
    74          * @access protected
    75          *
    76          * @return string String of classes to hide.
    77          */
    78         protected function header_text_classes() {
    79                 $args = get_theme_support( 'custom-logo' );
    80 
    81                 if ( isset( $args[0]['header-text'] ) ) {
    82                         // Use any classes defined in add_theme_support().
    83                         $classes = $args[0]['header-text'];
    84                 } else {
    85                         // Otherwise, use these defaults, which will work with any Underscores-based theme.
    86                         $classes = array(
    87                                 'site-title',
    88                                 'site-description',
    89                         );
    90                 }
    91 
    92                 // If there's an array of classes, reduce them to a string for output.
    93                 if ( is_array( $classes ) ) {
    94                         $classes = array_map( 'sanitize_html_class', $classes );
    95                         $classes = (string) '.' . implode( ', .', $classes );
    96                 } else {
    97                         $classes = (string) '.' . $classes;
    98                 }
    99 
    100                 return $classes;
    101         }
    10242}
    10343
    10444/**
  • src/wp-includes/class-wp-customize-manager.php

     
    19221922                        'section'    => 'title_tagline',
    19231923                ) );
    19241924
    1925                 // Add a setting to hide header text if the theme isn't supporting the feature itself.
    1926                 // @todo
    1927                 if ( ! current_theme_supports( 'custom-header' ) ) {
     1925                // Add a setting to hide header text if the theme doesn't support custom headers.
     1926                if ( ! current_theme_supports( 'custom-header', 'header-text' ) ) {
    19281927                        $this->add_setting( 'header_text', array(
     1928                                'theme_supports'    => array( 'custom-logo', 'header-text' ),
    19291929                                'default'           => 1,
    19301930                                'sanitize_callback' => 'absint',
    1931                                 'transport'         => 'postMessage',
     1931                        //      'transport'         => 'postMessage',
    19321932                        ) );
    19331933
    19341934                        $this->add_control( 'header_text', array(
  • src/wp-includes/default-filters.php

     
    371371 */
    372372// Theme
    373373add_action( 'wp_loaded', '_custom_header_background_just_in_time' );
     374add_action( 'wp_loaded', '_custom_logo_just_in_time' );
    374375add_action( 'plugins_loaded', '_wp_customize_include' );
    375376add_action( 'admin_enqueue_scripts', '_wp_customize_loader_settings' );
    376377add_action( 'delete_attachment', '_delete_attachment_theme_mod' );
  • src/wp-includes/theme.php

     
    17321732}
    17331733
    17341734/**
     1735 * Registers the internal custom header and background routines.
     1736 *
     1737 * @since 4.5.0
     1738 * @access private
     1739 */
     1740function _custom_logo_just_in_time() {
     1741        if ( ! current_theme_supports( 'custom-header' ) && get_theme_support( 'custom-logo', 'header-text' ) && ! get_theme_mod( 'header_text', true ) ) {
     1742                add_action( 'wp_head', '_custom_logo_cb' );
     1743        }
     1744}
     1745
     1746/**
     1747 * Hides header text for custom logo.
     1748 *
     1749 * @since 4.5.0
     1750 * @access private
     1751 */
     1752function _custom_logo_cb() {
     1753        $classes = (array) get_theme_support( 'custom-logo', 'header-text' );
     1754        $classes = array_map( 'sanitize_html_class', $classes );
     1755        $classes = '.' . implode( ', .', $classes );
     1756
     1757        ?>
     1758        <!-- Custom Logo: hide header text -->
     1759        <style type="text/css">
     1760                <?php echo $classes; ?> {
     1761                        position: absolute;
     1762                        clip: rect(1px, 1px, 1px, 1px);
     1763                }
     1764        </style>
     1765<?php
     1766}
     1767
     1768/**
    17351769 * Gets the theme support arguments passed when registering that support
    17361770 *
    17371771 * @since 3.1.0
     
    17511785
    17521786        $args = array_slice( func_get_args(), 1 );
    17531787        switch ( $feature ) {
     1788                case 'custom-logo' :
    17541789                case 'custom-header' :
    17551790                case 'custom-background' :
    17561791                        if ( isset( $_wp_theme_features[ $feature ][0][ $args[0] ] ) )
     
    18771912                        $type = $args[0];
    18781913                        return in_array( $type, $_wp_theme_features[$feature][0] );
    18791914
     1915                case 'custom-logo':
    18801916                case 'custom-header':
    1881                 case 'custom-background' :
     1917                case 'custom-background':
    18821918                        // specific custom header and background capabilities can be registered by passing
    18831919                        // an array to add_theme_support()
    18841920                        $header_support = $args[0];