こんにちは
何かのサンプルコードを参考に、当てはめたのですか?
$imgListの値は取れていますか?
配列に含まれる . や..
は除去しなくていいですか?
ファイル名だけで、pathinfo()
は動作しますか?
$head_imglistは、配列の形式が違いませんか?
http://codex.wordpress.org/Function_Reference/register_default_headers
それずれの関数の働きを、もう一度見直してみてください
確かに便利そうなので、書いてみました、参考になればうれしいです
Twentyfourteen、Raindropsの二つでしかテストしていないので、不都合があれば、教えてください。
<?php
add_action( 'after_setup_theme', 'header_setup' );
function header_setup(){
/* ヘッダー画像ホルダthemes / images / testを指定して、png jpgファイルを、カスタムヘッダー管理画面に追加する例*/
my_register_directory_images( array('png','jpg'),array(),'images/test/' );
}
/**
* ヘッダー画像のホルダを指定する
*
*
* $support_file_type 許可する拡張子を配列で指定
* $exclude_file 除外ファイルのファイル名を配列で指定
* $header_dir テーマルートからヘッダ画像ホルダのパス
*/
function my_register_directory_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);
}
}
?>
返事が遅くなりすみせん!
>gatespace様
まずPHPの基礎から勉強しないといけないとわかりました。。。
通常のカスタムヘッダーでアップロードして管理してもいいんですが、
メディア内でごちゃごちゃしたくないので指定フォルダに入れるだけで選べたら。。という選択肢もほしかった次第です。
>nobita様
無い知識でサンプルコードを参考に、当てはめてました。
教えて頂いたコードでうまくいきました!(twentyeleven)
勉強になります!ありがとうございます!!