カスタムヘッダー
カスタムヘッダーは、サイトの所有者が自分の「タイトル」画像をサイトにアップロードできるようにし、特定のページの上部に配置できます。これらは、管理パネルの**外観
ヘッダーセクションのビジュアルエディタを通じてユーザーによってカスタマイズおよびトリミングできます。また、ヘッダーの下または上にテキストを配置することもできます。流動的なレイアウトとレスポンシブデザインをサポートするために、これらのヘッダーは柔軟である場合もあります。ヘッダーは
get_custom_header()
を使用してテーマに配置されますが、最初にadd_theme_support()
を使用してfunctions.phpファイルに追加する必要があります。カスタムヘッダーはオプション**です。
基本的な柔軟なカスタムヘッダーをテキスト付きで設定するには、次のコードを含めます:
<?php
function themename_custom_header_setup() {
$args = array(
'default-image' => get_template_directory_uri() . 'img/default-image.jpg',
'default-text-color' => '000',
'width' => 1000,
'height' => 250,
'flex-width' => true,
'flex-height' => true,
);
add_theme_support( 'custom-header', $args );
}
add_action( 'after_setup_theme', 'themename_custom_header_setup' );
カスタムヘッダーがテーマの読み込み後に登録されるように、after_setup_theme
フックが使用されます。
カスタムヘッダーとは?
テーマでカスタムヘッダーを有効にすると、ユーザーはWordPressテーマカスタマイザーを使用してヘッダー画像を変更できます。これにより、ユーザーはサイトの外観に対してより多くの制御と柔軟性を持つことができます。
テーマにカスタムヘッダーサポートを追加する
テーマでカスタムヘッダーを有効にするには、functions.php
ファイルに次の内容を追加します:
add_theme_support( 'custom-header' );
カスタムヘッダーを有効にすると、add_theme_support()
関数に引数を渡すことで、他のいくつかのオプションを構成できます。
特定の構成オプションをadd_theme_support
関数に配列を使用して渡すことができます:
<?php
function themename_custom_header_setup() {
$defaults = array(
// Default Header Image to display.
'default-image' => get_template_directory_uri() . '/images/headers/default.jpg',
// Display the header text along with the image.
'header-text' => false,
// Header text color default.
'default-text-color' => '000',
// Header image width (in pixels).
'width' => 1000,
// Header image height (in pixels).
'height' => 198,
// Header image random rotation default.
'random-default' => false,
// Enable upload of image file in admin.
'uploads' => false,
// Function to be called in theme head section.
'wp-head-callback' => 'wphead_cb',
// Function to be called in preview page head section.
'admin-head-callback' => 'adminhead_cb',
// Function to produce preview markup in the admin screen.
'admin-preview-callback' => 'adminpreview_cb',
);
}
add_action( 'after_setup_theme', 'themename_custom_header_setup' );
柔軟なヘッダー画像
配列にflex-heightまたはflex-widthが含まれていない場合、高さと幅は固定サイズになります。flex-heightとflex-widthが含まれている場合、高さと幅は代わりに推奨される寸法として使用されます。
ヘッダーテキスト
デフォルトでは、ユーザーは画像の上にヘッダーテキストを表示するかどうかを選択できます。ユーザーにヘッダーテキストを強制するオプションはありませんが、ヘッダーテキストを完全に削除したい場合は、引数で「header-text」を「false」に設定できます。これにより、ヘッダーテキストとそれを切り替えるオプションが削除されます。
例
カスタムヘッダー画像を設定する
ユーザーが最初にテーマをインストールするとき、ユーザーが自分のヘッダーを選択する前に選択されるデフォルトのヘッダーを含めることができます。これにより、ユーザーはテーマをより迅速に設定し、自分の画像をアップロードする準備ができるまでデフォルトの画像を使用できます。
デフォルトのヘッダー画像の幅980px、高さ60pxを設定します:
<?php
$header_info = array(
'width' => 980,
'height' => 60,
'default-image' => get_template_directory_uri() . '/images/sunset.jpg',
);
add_theme_support( 'custom-header', $header_info );
$header_images = array(
'sunset' => array(
'url' => get_template_directory_uri() . '/images/sunset.jpg',
'thumbnail_url' => get_template_directory_uri() . '/images/sunset_thumbnail.jpg',
'description' => 'Sunset',
),
'flower' => array(
'url' => get_template_directory_uri() . '/images/flower.jpg',
'thumbnail_url' => get_template_directory_uri() . '/images/flower_thumbnail.jpg',
'description' => 'Flower',
),
);
register_default_headers( $header_images );
デフォルトの画像を登録するためにregister_default_headers()を呼び出すことを忘れないでください。この例では、sunset.jpg
がデフォルトの画像で、flower.jpg
がカスタマイザーでの代替選択です。
管理画面から、**外観
ヘッダー**をクリックしてカスタマイザーにヘッダー画像メニューを表示します。add_theme_support()で指定された幅と高さが推奨サイズとして表示され、
flower.jpg
が選択可能なオプションとして表示されます。
柔軟なヘッダーを使用する
デフォルトでは、ユーザーはアップロードする画像を指定した幅と高さに合わせてトリミングする必要があります。ただし、ユーザーが任意の高さと幅の画像をアップロードできるように、‘flex-width’と‘flex-height’をtrueとして指定することができます。これにより、ユーザーは新しい写真をアップロードする際にトリミングステップをスキップできます。
柔軟なヘッダーを設定します:
<?php
$args = array(
'flex-width' => true,
'width' => 980,
'flex-height' => true,
'height' => 200,
'default-image' => get_template_directory_uri() . '/images/header.jpg',
);
add_theme_support( 'custom-header', $args );
``````bash
<img alt="" src="<?php header_image(); ?>" width="<?php echo absint( get_custom_header()->width ); ?>" height="<?php echo absint( get_custom_header()->height ); ?>">
`
カスタムヘッダーの表示
カスタムヘッダーを表示するには、関数get_header_image()がヘッダー画像を取得します。get_custom_header()がカスタムヘッダーデータを取得します。
例えば、以下はカスタムヘッダー画像を使用してテーマにヘッダーを表示する方法を示しています。以下のコードはheader.phpファイルに入ります。
<?php if ( get_header_image() ) : ?>
<div id="site-header">
<a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home">
<img src="<?php header_image(); ?>" width="<?php echo absint( get_custom_header()->width ); ?>" height="<?php echo absint( get_custom_header()->height ); ?>" alt="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>">
</a>
</div>
<?php endif; ?>
後方互換性
カスタムヘッダーはWordPress 3.4以降でサポートされています。テーマが3.4より古いWordPressインストールをサポートする場合は、add_theme_support( ‘custom-header’);
の代わりに次のコードを使用できます。
<?php
global $wp_version;
if ( version_compare( $wp_version, '3.4', '>=' ) ) :
add_theme_support( 'custom-header' );
else :
add_custom_image_header( $wp_head_callback, $admin_head_callback );
endif;
関数リファレンス
- header_image() ヘッダー画像のURLを表示します。
- get_header_image() カスタムヘッダーのヘッダー画像を取得します。
- get_custom_header() ヘッダー画像データを取得します。
- get_random_header_image() カスタムヘッダーのヘッダー画像を取得します。
- add_theme_support() 特定の機能のためにテーマサポートを登録します。
- register_default_headers() カスタマイザーによって表示されるデフォルトヘッダーの選択を登録します。