WordPressのテーマを4.2対応していて気がついた。
ダッシュボードの[外観]メニュー[ヘッダー]をクリックすると、以前はカスタムヘッダーの設定画面が表示されていた。今ではテーマカスタマイザーが表示されるようになっている。いつのころからか、カスタムヘッダーのプレビュー画面がいらなくなったのだろうか?
カスタムヘッダー
カスタムヘッダー機能を持つテーマでは、ヘッダーの画像やヘッダーテキストの色や表示の有無を変更することができる。
» カスタムヘッダー – WordPress Codex 日本語版
以前、カスタムヘッダーには次のような設定画面があった。
この画面でヘッダー画像をアップロードしたり、テキストの色を変更したり、非表示にしたりする。機能はWordPress本体で提供されている。テーマにカスタムヘッダーを取り入れる場合は、この画面にも対応する必要があった。
※4.1以降この画面はない
テーマカスタマイザー
テーマカスタマイザーは3.4からの機能である。テーマ設定はじめサイトのタイトル、ウィジェットなどプレビューしながら変更できるのが特徴で、テーマごとに独自の項目を追加することも可能だ。
» テーマカスタマイズ API – WordPress Codex 日本語版
左側で設定を変更すると、右側にリアルタイムでプレビューしてくれる。そのうち、いろいろなことがここでできるようになるんだろう?という予感はあった。
カスタムヘッダーの設定画面は、こちらのテーマカスタマイザーと設定項目が重複しながらしばらく共存していたものの、いつしか姿を消した。4.1以降は [外観]メニュー[ヘッダー]をクリックすると、直接テーマカスタマイザーが表示される。
デフォルトテーマに見る変更
カスタムヘッダーの設定画面がなくなったということは…テーマでカスタムヘッダーのプレビューに対応しなくてよくなったということか?
デフォルトテーマで確認してみた。
twentyfourteen
3.8〜4.0までのデフォルトテーマtwentyfourteen
functions.php
twentyfourteen_custom_header_setup()内
1 2 3 4 5 6 7 8 9 10 |
add_theme_support( 'custom-header', apply_filters( 'twentyfourteen_custom_header_args', array( 'default-text-color' => 'fff', 'width' => 1260, 'height' => 240, 'flex-height' => true, 'wp-head-callback' => 'twentyfourteen_header_style', 'admin-head-callback' => 'twentyfourteen_admin_header_style', 'admin-preview-callback' => 'twentyfourteen_admin_header_image', ) ) ); |
twentyfifteen
4.1〜のデフォルトテーマ twentyfifteen
twentyfifteen_custom_header_setup()内
1 2 3 4 5 6 7 |
add_theme_support( 'custom-header', apply_filters( 'twentyfifteen_custom_header_args', array( 'default-text-color' => $default_text_color, 'width' => 954, 'height' => 1300, 'wp-head-callback' => 'twentyfifteen_header_style', ) ) ); |
twentyfifteenでは、カスタムヘッダーのプレビューに必要だった2つのオプションが消えている。
- admin-head-callback
カスタムヘッダー設定画面のためのCSSを書くコールバック関数 - admin-preview-callback
カスタムヘッダー設定画面のためのHTMLを書くコールバック関数
これらのコールバック関数の内容は、フロントに表示される wp-head-callback と似た内容だった。wp-head-callbackに統合されたと思えばよいのか。
プレビュー用のCSSは?
カスタムヘッダーで独自のstyleを利用している場合がある。
たとえば、style.css内で日本語フォントのメイリオやGoogleフォントなど指定している場合だ。このときカスタムヘッダーのプレビュー用にもCSSファイルの読み込みが必要だった。さきほどのadmin-head-callbackに書いておけば?と思うかもしれないが、functions.phpに全角文字を書くとテーマレビューではじかれるため別途読み込んでいた。
これまではadmin_enqueue_scripts というフックを利用して、日本語フォントのためのCSSファイルを読み込んでいた。カスタムヘッダーのプレビュー廃止とともに、これもいらなくなった。
すこしスッキリ
業務用や個人のテーマではあまり必要ないと思われるカスタムヘッダーだろう。公式ディレクトリのテーマではあったほうがよい機能なのだ。そのためにプレビュー用のCSSやHTMLを書いたり…似たコードが散在していた。もういらないんだ。
ありがとうテーマカスタマイザー!!