カスタム背景を有効にする

カスタム背景を有効にするには、functions.phpファイル内でadd_theme_support()を使用します。

  1. add_theme_support( 'custom-background' );

デフォルトのパラメータを指定できます。以下の例では、デフォルトの背景色「#0000ff」(青)と、/imagesフォルダーに保存された「wapuu.jpg」背景画像を使用しています。

  1. $args = array(
  2. 'default-color' => '0000ff',
  3. 'default-image' => get_template_directory_uri() . '/images/wapuu.jpg',
  4. );
  5. add_theme_support( 'custom-background', $args );

add_theme_support()を呼び出すことで、Customizerは「背景画像」メニューと「背景色」セクションをColorsメニューに表示します。

カスタム背景を表示する

一般的に、カスタム背景を表示するには、header.phpファイル内でwp_head()body_class()を呼び出します。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <?php wp_head(); ?>
  5. </head>
  6. <body <?php body_class(); ?>>

wp_head()は、HTMLヘッダーとインラインで追加のスタイルシートを生成し、通常はドキュメントのHEAD要素の終わりの直前に配置されます。この追加のスタイルシートは、テーマのスタイルシートからの背景値を上書きします。

私たちの例では、以下のコードがHTMLに生成されます。bodyタグには「custom-background」クラスが含まれていることに注意してください。

  1. <!DOCTYPE html>
  2. <html lang="en-US" class="no-js">
  3. <head>
  4. ...
  5. <style type="text/css" id="custom-background-css">
  6. body.custom-background {
  7. background-image: url("http://example.com/wordpress/wp-content/themes/my-first-theme/images/wapuu.jpg");
  8. background-position: left top;
  9. background-size: auto;
  10. background-repeat: repeat;
  11. background-attachment: scroll;
  12. }
  13. </style>
  14. ...
  15. </head>
  16. <body class="home page-template-default page page-id-211 logged-in admin-bar no-customize-support custom-background">
  17. ...

これで、繰り返し背景画像が表示されます

カスタム背景(Custom Backgrounds) - img1

別のデフォルト例

これはデフォルト値設定の別の例です。

  1. $another_args = array(
  2. 'default-color' => '0000ff',
  3. 'default-image' => get_template_directory_uri() . '/images/wapuu.jpg',
  4. 'default-position-x' => 'right',
  5. 'default-position-y' => 'top',
  6. 'default-repeat' => 'no-repeat',
  7. );
  8. add_theme_support( 'custom-background', $another_args );

これにより、右上隅に単一の画像が表示されます。

カスタム背景(Custom Backgrounds) - img2

「default-color」を「#0000ff」(青)として指定しても、背景色は青ではありません。default-imageパラメータを設定すると、その値が即座に有効なカスタム背景になりますが、default-colorを設定しても効果はありません。それは単にCustomizerのColorメニューでデフォルトの背景色として設定され、管理者が保存すると強化されます。

カスタム背景(Custom Backgrounds) - img3