WordPressのカスタムヘッダーの設定してみたよー
WordPressのマルチサイト機能を使ってサイトを作成していて、子ブログ用のテーマを作成した時にカスタムヘッダーを設置してみた。
カスタムヘッダーの設定
デフォルトの設定は下記のようになっています( wp-includes/theme.php )
$defaults = array(
'default-image' => '',
'random-default' => false,
'width' => 0,
'height' => 0,
'flex-height' => false,
'flex-width' => false,
'default-text-color' => '',
'header-text' => true,
'uploads' => true,
'wp-head-callback' => '',
'admin-head-callback' => '',
'admin-preview-callback' => '',
);
カスタムヘッダーの設定をfunctions.phpに書いてフックをかけます。
functions.php
function theme_setup() {
$settings = array(
'default-image' => '',
'random-dafault' => false,
'width' => 930,
'height' => 220,
'flex-width' => true,
'flex-height' => true,
'default-text-color' => '333',
'header-text' => true,
'max-width' => 2000,
'uploads' => true,
/* ヘッダーを表示する際のコールバック関数 */
'wp-head-callback' => 'wp-head-callback',
/* 管理画面でヘッダーを編集する際のコールバック関数 */
'admin-head-callback' => 'admin-head-callback',
/* 管理画面でヘッダーをプレビューする際のコールバック関数 */
'admin-preview-callback' => 'admin-preview-callback'
);
add_theme_support( 'custom-header', $settings );
}
add_action( 'after_setup_theme', 'theme_setup' ); // フックをかける。
カスタム背景の設定
また、カスタム背景を設定するには上記function内に下記を追加します。
add_theme_support( 'custom-background', array(
'default-color' => 'Your favorite color'
));
カスタム背景のデフォルト設定( wp-includes/theme.php )
$defaults = array(
'default-image' => '',
'default-color' => '',
'wp-head-callback' => '_custom_background_cb',
'admin-head-callback' => '',
'admin-preview-callback' => '',
);
これで、ダッシュボード/外観/ヘッダー
ダッシュボード/外観/背景が利用可能になります。
あとは3つ関数を書きます。
・ヘッダーを表示させる際の関数
・管理画面でヘッダーを編集する際の関数
・管理画面でプレビューを表示させるための関数
function wp-head-callback() {
/* Your code */
}
function admin-head-callback() {
/* Your code */
}
function admin-preview-callback() {
/* Your code */
}
これでカスタムヘッダーとカスタム背景の設定は完了です。