浏览代码

Photos: Build out custom header funcitonality, to make sure site title and description can be hidden on the front end. Fixes #319.

Laurel Fulford 6 年之前
父节点
当前提交
dc5a0a46d1
共有 2 个文件被更改,包括 71 次插入10 次删除
  1. 0 10
      photos/functions.php
  2. 71 0
      photos/inc/custom-header.php

+ 0 - 10
photos/functions.php

@@ -88,16 +88,6 @@ if ( ! function_exists( 'photos_setup' ) ) :
 			),
 		) );
 
-		// Custom header support
-		add_theme_support( 'custom-header', apply_filters( 'photos_custom_header_args', array(
-			'default-image'          => '',
-			'default-text-color'     => '111111',
-			'width'                  => 1920,
-			'height'                 => 400,
-			'flex-height'            => true,
-			'flex-width'             => true,
-		) ) );
-
 		/* Gutenberg! */
 		add_theme_support( 'align-wide' );
 

+ 71 - 0
photos/inc/custom-header.php

@@ -0,0 +1,71 @@
+<?php
+/**
+ * Sample implementation of the Custom Header feature
+ *
+ * You can add an optional custom header image to header.php like so ...
+ *
+	<?php the_header_image_tag(); ?>
+ *
+ * @link https://developer.wordpress.org/themes/functionality/custom-headers/
+ *
+ * @package Photos
+ */
+/**
+ * Set up the WordPress core custom header feature.
+ *
+ * @uses photos_header_style()
+ */
+function photos_custom_header_setup() {
+
+	// Custom header support
+	add_theme_support( 'custom-header', apply_filters( 'photos_custom_header_args', array(
+		'default-image'          => '',
+		'default-text-color'     => '111111',
+		'width'                  => 1920,
+		'height'                 => 400,
+		'flex-height'            => true,
+		'flex-width'             => true,
+	) ) );
+}
+add_action( 'after_setup_theme', 'photos_custom_header_setup' );
+
+if ( ! function_exists( 'photos_header_style' ) ) :
+	/**
+	 * Styles the header image and text displayed on the blog.
+	 *
+	 * @see photos_header_style().
+	 */
+	function photos_header_style() {
+		$header_text_color = get_header_textcolor();
+		/*
+		 * If no custom options for text are set, let's bail.
+		 * get_header_textcolor() options: Any hex value, 'blank' to hide text. Default: add_theme_support( 'custom-header' ).
+		 */
+		if ( get_theme_support( 'custom-header', 'default-text-color' ) === $header_text_color ) {
+			return;
+		}
+		// If we get this far, we have custom styles. Let's do this.
+		?>
+		<style type="text/css">
+		<?php
+		// Has the text been hidden?
+		if ( ! display_header_text() ) :
+			?>
+			.site-title,
+			.site-description {
+				position: absolute;
+				clip: rect(1px, 1px, 1px, 1px);
+			}
+		<?php
+		// If the user has set a custom color for the text use that.
+		else :
+			?>
+			.site-title a,
+			.site-description {
+				color: #<?php echo esc_attr( $header_text_color ); ?>;
+			}
+		<?php endif; ?>
+		</style>
+		<?php
+	}
+endif;