WordPress 4.6.3
[autoinstalls/wordpress.git] / wp-content / themes / twentyfourteen / inc / custom-header.php
1 <?php
2 /**
3  * Implement Custom Header functionality for Twenty Fourteen
4  *
5  * @package WordPress
6  * @subpackage Twenty_Fourteen
7  * @since Twenty Fourteen 1.0
8  */
9
10 /**
11  * Set up the WordPress core custom header settings.
12  *
13  * @since Twenty Fourteen 1.0
14  *
15  * @uses twentyfourteen_header_style()
16  * @uses twentyfourteen_admin_header_style()
17  * @uses twentyfourteen_admin_header_image()
18  */
19 function twentyfourteen_custom_header_setup() {
20         /**
21          * Filter Twenty Fourteen custom-header support arguments.
22          *
23          * @since Twenty Fourteen 1.0
24          *
25          * @param array $args {
26          *     An array of custom-header support arguments.
27          *
28          *     @type bool   $header_text            Whether to display custom header text. Default false.
29          *     @type int    $width                  Width in pixels of the custom header image. Default 1260.
30          *     @type int    $height                 Height in pixels of the custom header image. Default 240.
31          *     @type bool   $flex_height            Whether to allow flexible-height header images. Default true.
32          *     @type string $admin_head_callback    Callback function used to style the image displayed in
33          *                                          the Appearance > Header screen.
34          *     @type string $admin_preview_callback Callback function used to create the custom header markup in
35          *                                          the Appearance > Header screen.
36          * }
37          */
38         add_theme_support( 'custom-header', apply_filters( 'twentyfourteen_custom_header_args', array(
39                 'default-text-color'     => 'fff',
40                 'width'                  => 1260,
41                 'height'                 => 240,
42                 'flex-height'            => true,
43                 'wp-head-callback'       => 'twentyfourteen_header_style',
44                 'admin-head-callback'    => 'twentyfourteen_admin_header_style',
45                 'admin-preview-callback' => 'twentyfourteen_admin_header_image',
46         ) ) );
47 }
48 add_action( 'after_setup_theme', 'twentyfourteen_custom_header_setup' );
49
50 if ( ! function_exists( 'twentyfourteen_header_style' ) ) :
51 /**
52  * Styles the header image and text displayed on the blog
53  *
54  * @see twentyfourteen_custom_header_setup().
55  *
56  */
57 function twentyfourteen_header_style() {
58         $text_color = get_header_textcolor();
59
60         // If no custom color for text is set, let's bail.
61         if ( display_header_text() && $text_color === get_theme_support( 'custom-header', 'default-text-color' ) )
62                 return;
63
64         // If we get this far, we have custom styles.
65         ?>
66         <style type="text/css" id="twentyfourteen-header-css">
67         <?php
68                 // Has the text been hidden?
69                 if ( ! display_header_text() ) :
70         ?>
71                 .site-title,
72                 .site-description {
73                         clip: rect(1px 1px 1px 1px); /* IE7 */
74                         clip: rect(1px, 1px, 1px, 1px);
75                         position: absolute;
76                 }
77         <?php
78                 // If the user has set a custom color for the text, use that.
79                 elseif ( $text_color != get_theme_support( 'custom-header', 'default-text-color' ) ) :
80         ?>
81                 .site-title a {
82                         color: #<?php echo esc_attr( $text_color ); ?>;
83                 }
84         <?php endif; ?>
85         </style>
86         <?php
87 }
88 endif; // twentyfourteen_header_style
89
90
91 if ( ! function_exists( 'twentyfourteen_admin_header_style' ) ) :
92 /**
93  * Style the header image displayed on the Appearance > Header screen.
94  *
95  * @see twentyfourteen_custom_header_setup()
96  *
97  * @since Twenty Fourteen 1.0
98  */
99 function twentyfourteen_admin_header_style() {
100 ?>
101         <style type="text/css" id="twentyfourteen-admin-header-css">
102         .appearance_page_custom-header #headimg {
103                 background-color: #000;
104                 border: none;
105                 max-width: 1260px;
106                 min-height: 48px;
107         }
108         #headimg h1 {
109                 font-family: Lato, sans-serif;
110                 font-size: 18px;
111                 line-height: 48px;
112                 margin: 0 0 0 30px;
113         }
114         .rtl #headimg h1  {
115                 margin: 0 30px 0 0;
116         }
117         #headimg h1 a {
118                 color: #fff;
119                 text-decoration: none;
120         }
121         #headimg img {
122                 vertical-align: middle;
123         }
124         </style>
125 <?php
126 }
127 endif; // twentyfourteen_admin_header_style
128
129 if ( ! function_exists( 'twentyfourteen_admin_header_image' ) ) :
130 /**
131  * Create the custom header image markup displayed on the Appearance > Header screen.
132  *
133  * @see twentyfourteen_custom_header_setup()
134  *
135  * @since Twenty Fourteen 1.0
136  */
137 function twentyfourteen_admin_header_image() {
138 ?>
139         <div id="headimg">
140                 <?php if ( get_header_image() ) : ?>
141                 <img src="<?php header_image(); ?>" alt="">
142                 <?php endif; ?>
143                 <h1 class="displaying-header-text"><a id="name" style="<?php echo esc_attr( sprintf( 'color: #%s;', get_header_textcolor() ) ); ?>" onclick="return false;" href="<?php echo esc_url( home_url( '/' ) ); ?>" tabindex="-1"><?php bloginfo( 'name' ); ?></a></h1>
144         </div>
145 <?php
146 }
147 endif; // twentyfourteen_admin_header_image