WordPress Snippet

ワードプレスをカスタマイズしよう

Twentyeleven チャイルドテーマの作り方

投稿日: by

Twentyeleven チャイルドテーマの作り方

投稿日: by

上の写真は、チャイルドテーマホルダにorange.pngを追加しています。

Twentyelevenは、WordPresの付属テーマです  
このテーマから、自分流を極めようとする人へ

http://theme.fm/2011/07/how-to-create-a-child-theme-based-on-twenty-eleven-791/(b:title)から、チャイルドテーマを使ったカスタマイズについてのチュートリアルを紹介します。

ゴール

Twentyeleven の管理画面にあるカラースキーマに自分自身の配色設定を追加したチャイルドテーマの作成です

必要な知識スキル

このページの内容を理解するためには、PHPの関数が理解できる事、HTML CSSの基本的な知識を有する事が必要です。
体験的に学びたい人は、コピーペーストでなにがおきるのかを体験してみてください。

事前準備

UTF-8BOMなしで、保存が出来るテキストエディタの用意
http://ja.forums.wordpress.org/topic/155(b:title)

Step1

  1. ホルダーの作成
    • twentyeleven-orange という名前のホルダーを作ります。
  1. ホルダーにファイルを追加します
    • functions.php
    • orange.css
    • style.css
    • 3つの中身を何も書いていないファイルを用意します。

Step2

最も重要なファイルstyle.cssを編集します。

以下のコードを参考に書いてみましょう

上記のコードに、@import ルールが使用されています。このルールを使っても正常に動作しますが、その後2015年の今は、@import ルールよりも
WordPressの wp_enqueue_style()を使いCSSをlink 要素として読み込む事が推奨されるようになりました。

これは、スタイルシートの読み込み時のパフォーマンスの差がその根拠になっています

どちらを使っても、動作は適切に行われますが、新しいwp_enqueue_style()を使った呼び出し方法についても、調べておくといいでしょう

body {
	background: orange;
}

#access .menu li a {
	color: orange;
}

#access .menu ul.children > li:hover > a,
#access .menu ul.sub-menu > li:hover > a,
#access .menu > ul > li:hover > a,
#access .menu > li:hover > a {
	color: white;
	background: orange;
}

#access .menu ul.children li a,
#access .menu ul.sub-menu li a
{
	background: #333;
	border-bottom: dotted 1px #555;
	color: orange;
}

Step4

PHPの魔法をかけていきます。

functions.php

<?php
add_filter( 'twentyeleven_color_schemes', 'twentyeleven_color_schemes_orange' );
add_action( 'twentyeleven_enqueue_color_scheme', 'twentyeleven_enqueue_color_scheme_orange' );

function twentyeleven_color_schemes_orange( $color_schemes ) {
	$color_schemes['orange']= array(
		'value'=> 'orange',
		'label'=> __( 'Orange', 'twentyeleven' ),
		'thumbnail'=> get_stylesheet_directory_uri() . '/orange.png',
		'default_link_color'=> '#FFA500',
	);
	return $color_schemes;
}

function twentyeleven_enqueue_color_scheme_orange( $color_scheme ) {
	if ( 'orange'== $color_scheme )
		wp_enqueue_style( 'orange', get_stylesheet_directory_uri() . '/orange.css', array(), null );
	}
?>
add_filter( 'twentyeleven_color_schemes', 'twentyeleven_color_schemes_orange' );

この、add_filterという関数を使って、Twentyelevenの管理画面にメニューを追加します。

twentyeleven_color_schemes_orangeという関数は、具体的な管理メニューに追加する内容を決めています。デフォルトのリンク色、スキーマ画像のURL(チャイルドテーマのorange.pngがあれば管理画面に表示されます)

__( ‘Orange’, ‘twentyeleven’ )というのもPHPの関数で、Orangeというラベル表示するものです。

twentyeleven_enqueue_color_scheme_orangeという関数は、orange.cssがテーマヘッダーに組み込まれるようにorange.cssを登録しています

このように、HTMLとCSS、PHPを少し使うだけで、自分のカラースキーマが管理画面にきちっと登録されたチャイルドテーマの出来上がりです。