指定したホルダの画像を、カスタムヘッダーに含める

ホルダーを指定して、その中の画像を管理パネルのカスタムヘッダーに含めます。

画像ファイルは、ヘッダー画像の大きさを統一(テーマのデフォルトサイズ)することと、サムネール画像とセットで存在することが必須です。

チャイルドテーマの場合は、チャイルドテーマに指定したホルダがあれば、それを追加、なければ、親テーマの指定ディレクトリの画像を読み込みます。

テーマのfunctions.phpに追加します

<?php

add_action( 'after_setup_theme', 'header_setup' );

function header_setup(){

/* ヘッダー画像ホルダthemes / images / testを指定して、png jpgファイルを、カスタムヘッダー管理画面に追加する例*/
	my_register_header_images( array('png','jpg'),array(),'images/test/' );
}

/**
 * ヘッダー画像のホルダを指定する
 *
 * 
 * $support_file_type 許可する拡張子を配列で指定
 * $exclude_file 除外ファイルのファイル名を配列で指定
 * $header_dir テーマルートからヘッダ画像ホルダのパス 
 */
function my_register_header_images ( $support_file_type= array(), $exclude_file= array(), $header_dir= 'images/headers/') {

	$header_images = array();

	if( empty( $support_file_type ) ) {
	
		$support_file_type= array( 'jpeg', 'jpg', 'png' );
	}
	
	if ( is_child_theme() && file_exists( trailingslashit( get_stylesheet_directory() ). $header_dir ) ) {
	
		$img_dir_path= trailingslashit( get_stylesheet_directory() ). $header_dir;
		$img_dir_uri = trailingslashit( get_stylesheet_directory_uri() ). $header_dir;
	
	} else {
	
		$img_dir_path= trailingslashit( get_template_directory() ). $header_dir;
		$img_dir_uri = trailingslashit( get_template_directory_uri() ). $header_dir;
	}

	$img_lists= scandir($img_dir_path);

	foreach( $img_lists as $list ) {
	
	
		if ( $list !== '.' && $list !== '..' && !preg_match( ' |thumbnail |u',$list ) ) {
			
			$file_path= $img_dir_path. $list;
			$file_info= pathinfo( $file_path );
				$file_name= $file_info["basename"];
				$file_type= $file_info["extension"];
				$name = $file_info['filename'];
			
			if ( ! in_array($file_type, $support_file_type ) ) {
				continue;
			}
			
			if( ! empty( $exclude_file ) && in_array($list, $exclude_file ) ) {
				continue;
			}
			
			$uri = esc_url( $img_dir_uri. $file_name );
			$uri_thumb = esc_url( $img_dir_uri. $name.'-thumbnail'.'.'. $file_type );
			$description= $name;
			
			$header_images[ $name ]= array( 'url'=> $uri, 'thumbnail_url'=> $uri_thumb, 'description'=> $description );
		}
	}
	
	if( !empty( $header_images) ) {
	
		register_default_headers($header_images);
	}
}
?>

[emulsion_relate_posts]