TwentyTwelveの子テーマつくったらハマった話

Cherry Pie Web
Cherry Pie Web代表 at Cherry Pie Web
TwentyTwelveの
 子テーマつく   ったらハマった話


  2013/03/17
    WordBench京都

  Cherry Pie Web 川井昌彦
自己紹介
●川井昌彦(かわいまさひこ) @sakuragi_kei
 東京の制作会社で24年間勤めた後、
 京都府舞鶴市に帰郷してフリーランスで活動中



  実は、DTPのほうが経験が長い (このスライ  ドも InDesign で作っています)
  実は、MovableTypeのほうが経験が長い



 小桜インコ シロハラインコ 黒い柴犬のパパ
      ・       ・



Cherry Pie Web    http://www.cherrypieweb.com



                                                  2
このスライドは、
       こんな人におススメ
いわゆる
   「Webデザイナー」
•	 HTMLとCSSはだいたいわかる

•	 JavaScriptは、
              どっかのブログに書いてあるのを
   コピペして使うく    らい

•	 PHPは、
       WordPressで最低限必要なことを、
   解説書とかブログとか読んで、
   なんとなくわかっ  ているような、いないような ・
                          ・・




                                3
まえがき―子テーマとは
WordPressの制作 ≒ テーマの作成
一からテーマを作るのは大変
既存のテーマを持ってきて、
            一部を改造して使うのが手っ取り早い

         その時によく使われる方法が、子テーマ」
                      「
             ※ テーマのメリ トは、
              子       ッ   他でもいろいろ説明されているので
              ここでは省略

              WordBench京都2月の、         瀬戸さんのスライ       ドとか見ましょう。
              http://www.slideshare.net/aschachamaru/ss-16625153




                ←これは、子イヌ


                                                                   4
かのこ、           じゃあ、
 ひらめいたのだ!
            最新WordPressについてくる
            公式テーマ「TwentyTwelve」の
                子テーマ作って
              カスタマイズしちゃおう   !




             なんて、軽く考えていたのですが ・
                            ・・



                                   5
甘かった!

        6
子テーマを作るのは、
 「良い方法」だけど「簡単な方法」
                ではない!

  特に、WordPressに付属して るテーマは要注意
                      く            !
   (TwentyEleven, TwentyTwelve など)

  新しい機能や新しい考え方を盛り込んであるので、
     新しい機能をすぐに使える

           ↓

   新しい考え方を理解しないといけない!




                                       7
  しかも、TwentyTwelveでは、
   TwentyEleven までのやり方だとうまく行かないことがある




 世の中のブログ記事の多くが、
    ”時代遅れ”になっている!

                        早く、
                      追いつくのだ!




                                       8
というわけで、今日は、
  実際に「TwentyTwelve」の
      子テーマを作りながら、

  「ハマりやすい」
         ところと
     その対処法について
           お話しします。




                       9
本日のメニュー
●まずは、
    子テーマを作ってみよう!

●ie8以下にだけ、
         子テーマの style.css が適用されない!

●え ? テンプレートにcssの記述がないよ
  っ                   ?

●font-sizeの「rem」 て何? なんか小数点が凄いよ
               っ               !

●タイトルに勝手にサイト名が付いて、
 SEO対策のプラグイン入れても変なタイトルになるよ!

●親テーマの functions.php のおせっかいな設定が、
 子テーマで上書きできないよ      !



                                    10
子テーマを作ってみよう
子テーマを作るには、
 ディ トリを作っ
   レク          て、
  style.css に2行ほど書くだけ。 超カンタン!
/*
Theme Name: WB Kyoto 2013_3
Template: twentytwelve
*/

                         これは、最低限の記述で、
                             ホントは、
                           他にもいろいろ
                         書かないといけないのだ。

                     だまされちゃイケナイのだ!


                                        11
子テーマを適用すると、
  親テーマの style.css が適用されなくなる
子テーマでは、cssは子テーマの style.css が使用される



親テーマを流用して    一部だけ改造したいのだから、
       親テーマのcssを適用したい
           ↓
子テーマの style.css の先頭に、親テーマの style.css を読み込んで、
子テーマの style.css で上書きしていく
@import url('../twentytwelve/style.css');

        (注)
          この方法は、
               TwentyEleven までのやりかた


                                               12
ie8以下だけ、
 子テーマの style.css が適用されない!
この方法で、
     子テーマの style.css で上書きしてみると ・
                              ・・

子テーマの css が
 「適用されるところ」「適用されないところ」
            と         が出て る
                         く !
 しかも、
    ie8以下 だけ!

・・
 ・ でも、
     これ、ieが悪いんじゃないんです  。
     TwentyTwelve のせいなんです ・
                         ・・


                                   13
書き出された HTML を見てみると、
 子テーマの style.css の後に、
  親テーマの ie.css というのが読み込まれている
link rel='stylesheet' id='twentytwelve-style-css'
  href='http://.../wp-content/themes/twentytwelve/style.css?ver=3.5.1'
    type='text/css' media='all' /
!--[if lt IE 9]
link rel='stylesheet' id='twentytwelve-ie-css'
  href='http://.../wp-content/themes/twentytwelve/css/ie.css?ver=20121010'
    type='text/css' media='all' /
![endif]--



で、
 ここを直そうと思ってテンプレートを見てみると ・
                       ・・




                                                                             14
  テンプレートに、cssの記述がない!

     TwentyEleven では、header.php で
      スタイルシートを読み込んでいたが、
     TwentyTwelveでは読み込む記述がない      !



              どうなってんの?


                                      15
テンプレートにcssの記述がない
         どうなってんの ?
実は、
  TwentyTwelve の functions.php で記述されている
function twentytwelve_scripts_styles() {
	global $wp_styles;

(中略 webfontの読込)

	/*
	  * Loads our main stylesheet.
	  */
	 wp_enqueue_style( 'twentytwelve-style', get_stylesheet_uri() );




                                                                    16
/*
 	    * Loads the Internet Explorer specific stylesheet.
 	    */
 	 wp_enqueue_style( 'twentytwelve-ie', get_template_directory_uri() .
 '/css/ie.css', array( 'twentytwelve-style' ), '20121010' );
 	 $wp_styles-add_data( 'twentytwelve-ie', 'conditional', 'lt IE 9' );
 }
 add_action( 'wp_enqueue_scripts', 'twentytwelve_scripts_styles' );


これで、header.php の wp_head() のところにcssが挿入される

メインのcssは、    get_stylesheet_uri() で子テーマの style.css が
 適用されるが、      ieは、コンディショナルコメン        トが生きて、
  ie.css が後から適用される。
ie.css は、get_template_directory_uri() が指定されているので、
             親テーマの ie.css が適用されてしまう                  !



                                                                          17
つまり、
   子テーマの style.css に親テーマの style.css を
             @import で読み込む方法だと ・      ・・



1 親テーマの style.css
 .
                    ネットに書いてある通りじゃ
                     ダメってことなのだ・・・
2.
 子テーマの style.css
                      こんなの、フツー、
 親テーマの ie.css
3.                    わかんないのだ!




の順に読み込まれるので、
  ie8以下で見たときは、
             子テーマの style.css が、
      親テーマの ie.css で上書きされてしまう  !



                                           18
対策:
子テーマに functions.php をつくって、
スタイルシートの読み込みを再定義する
function wbkyoto_scripts_styles() {
	 global $wp_styles;
	 wp_enqueue_style( 'twentytwelve-style',
      get_template_directory_uri().'/style.css', array() );
	 wp_enqueue_style( 'twentytwelve-ie',
      get_template_directory_uri() . '/css/ie.css',
      array( 'twentytwelve-style' ), '20121010' );
	 $wp_styles-add_data( 'twentytwelve-ie', 'conditional', 'lt IE 9' );
	   wp_enqueue_style( 'wbkyoto-style',
      get_stylesheet_uri(), array('twentytwelve-ie') );
	   wp_enqueue_style( 'wbkyoto-ie',
      get_stylesheet_directory_uri().'/css/wbkyoto-ie.css',
      array( 'wbkyoto-style' ) );
	   $wp_styles-add_data( 'wbkyoto-ie', 'conditional', 'lt IE 9' );
}
add_action( 'wp_enqueue_scripts', 'wbkyoto_scripts_styles' );

                                                                         19
(解説)
親テーマの下記の記述では、
子テーマの style.css が読み込まれてしまう
wp_enqueue_style(
   'twentytwelve-style',
   get_stylesheet_uri()
);

そのため、
子テーマで同じハンドルを使っ 再定義する
              て、
wp_enqueue_style(
   'twentytwelve-style',
   get_template_directory_uri().'/style.css',
   array()
);




                                                20
なぜ、
  こんなややこしいことをしているのか?


1 読込順序
 .    (依存関係)
           をコントロールできる


2. バージョン指定により、
    ブラウザキャッシュの
      コン トロールができる


          うー、めんどくさくて、
          眠くなりそうなのだー




                        21
読込順序(依存関係)
         をコントロールできる
wp_enqueue_style() は、
 記述順に読み込むのではなく、
  第3引数に指定されたハン        ドルの「次」
                           に読み込むように指定される



さきほどの場合は、
 1. 親テーマの style.css	   ハン : twentytwelve-style
                         ドル
 2. 親テーマの ie.css		     ハン : twentytwelve-ie
                         ドル
 3. 子テーマの style.css	   ハン : wbkyoto-style
                         ドル
 4. 子テーマの ie.css		     ハン : wbkyoto-ie
                         ドル

の順に書き出される




                                                 22
ブラウザキャッシュのコントロールができる
第4引数にバージョ ンを指定すると、
                 ブラウザキャッシュのコントロールができる
(バージョンがGETパラメーターに指定される)

chromeのように、 キャッシュが効きすぎてスタイルシートを修正してもなかなか表示に反映され
ない場合、  GETパラメータを変えてやることで反映されるようになる

いちいちバージョ ンを指定するのも面倒なので、こんな感じで書いておくと、
 cssファイルの修正日時を、バージョ して出力して
                   ンと     くれるので、オススメ!
 wp_enqueue_style(
         'twentytwelve-style',
         get_template_directory_uri() . '/style.css',
         array(),
         date('YmdHis',
            filemtime(get_template_directory_uri() . '/style.css'))
         );




                                                                      23
テンプレートごと (投稿タイプごととか、カテゴリごとなど)
                            に
cssを適用したいとき、
たとえば ・
    ・・	   single-blog.php → blog.css
			       archive-blog.php → blog.css
			       single-news.php → news.css
			       archive-news.php → news.css


?php
function news_scripts_styles() {
	wp_enqueue_style( 'news-style', get_stylesheet_directory_uri().'/
css/news.css', 'wbkyoto-style' );
	wp_enqueue_style( 'news-style-ie', get_stylesheet_directory_uri().'/
css/news-ie.css', 'news-style' );
}
add_action( 'wp_enqueue_scripts', 'news_scripts_styles' );

get_header(); ?



                                                                        24
font-sizeの「rem」って何?
    なんか、      小数点が凄いよ!
TwentyTwelve の style.css には、見慣れない単位がある
.site-header h1 {
	 font-size: 24px;
	font-size: 1.714285714rem;
}


font-size の値は、アクセシビリティに配慮し、
 文字サイズを変えられるようにするため、
  親要素からの相対サイズで指定するのが一般的
  (例) html が 14px なら、 は、 (12px)
                     p  86%   とか




                                         25
しかし、親要素を継承するので、だんだんわからなくなる。

(例)
html { font-size: 14px; }
ul li { font-size: 86%; }

li はどんどん小さくなる
 ul
   liaaa - 12px
      ul
        liaaa/li - 10px
      /ul
   /li
 /ul


14px × 0.86 × 0.86 = ???




                               26
rem (root em)
ルート要素  (htmlタグ)
              を基準とした相対サイズ
(例)
html { font-size: 14px; }
ul li { font-size: 0.857142857rem; }

li は 12px で変わらない。
ul
  liaaa - 12px
     ul
       liaaa/li - 12px
     /ul
  /li
/ul




                                       27
TwentyTwelve - style.css
html { font-size: 87.5%; } ← ブラウザのデフォルトが16px

基準の文字サイズが 14px なので、
                  各フォ トサイズは下記のようになる
                     ン

16px = 1.142857143rem
12px = 0.857142857rem
11px = 0.785714286rem
10px = 0.714285714rem


                       こんなの、
                    おぼえられないのだー




                                               28
「こんなの、覚えられないよ 」
             ! というあなた!
子テーマの style.css の最初にこう書いてしまいましょう。
html { font-size: 10px; }

これで、基準の文字サイズが 10pxになったので、

16px = 1.6rem
12px = 1.2rem
11px = 1.1rem                 これなら、
10px = 1rem                 わかりやすいのだー




                                        29
style.css では、
            なぜ rem の前に px を重複して指定しているのか
.site-header h1 {
	 font-size: 24px;
	font-size: 1.714285714rem;
}

というと ・
    ・・

  ie8以前は
   rem に対応していない
         のでした ・・・


                              みんな、さっさと
                              バージョンアップ
                              してほしいのだ!



                                          30
タイトルに勝手にサイト名が付いて、
  SEO対策のプラグインを入れると
      変なタイ トルになってしまう!
All in One SEO Pack、Headspace2 などのSEO対策用プラグイン
で、 トルに自動でキーワードやサイ
   タイ                       ト名を挿入する対策を行うとき

TwentyTwelve で、
              これらのプラグインを推奨設定にすると、
投稿のタイ  トルにサイ   ト名がダブってしまう

・ in One SEOの設定
 All
%post_title% | %blog_title%

・出力されたTitleタグ
title投稿Cherry Pie Wordpress | Cherry Pie Wordpress/title

        ↑ 投稿名になぜかサイト名が付いてしまう

                                                               31
TwentyEleven から、
               プラグイン無しの状態でも
         タイ      トルにサイト名が入るようになっている

TwentyEleven は、
              テンプレート    ファイル header.php に
 処理が書いてあったので、       子テーマで変更してやればよかったが、
TwentyTwelve では、functions.php に書かれてしまっ  ているので、
 テンプレート    ファイルでは変更できない



TwentyTwelve - functions.php
function twentytwelve_wp_title( $title, $sep ) {
   ・・・
    (タイトルにサイト名を追加する処理)
   ・・・
}
add_filter( 'wp_title', 'twentytwelve_wp_title', 10, 2 );



                                                            32
add_filter されている処理は、
    remove_filter で削除できる


でも ・
  ・・
  functions.php は、
   子テーマ → 親テーマ の順で読み込まれるので、

子テーマの functions.php で単に
remove_filter( 'wp_title', 'twentytwelve_wp_title');

と書いても、
     そのあとで親テーマで add_filterされてしまう ・
                                ・・




                                                       33
親テーマの functions.php の
       処理を変更したい       !
子テーマで親テーマの処理を変更したいときは、
 アクションフック after_setup_theme を使う

子テーマ - functions.php
function wbkyoto_theme_setup () {
	 remove_filter( 'wp_title', 'twentytwelve_wp_title');
}
add_action( 'after_setup_theme', 'wbkyoto_theme_setup' );



TwentyTwelve に限らず、
 子テーマで親テーマの functions.php 内の処理を変えたり
  キャンセルするときには、     上記の関数の中に追加していけばよい

                                                            34
親テーマやプラグインの functions.php の中で、
 after_setup_theme でフックされている処理は
                   どうするか        ?
add_action() は、第3引数が小さいほうが先に実行される

TwentyTwelve の functions.php にも
 after_setup_theme でフックされている関数があるが、
  第3引数が設定されていない          (デフォル  ト値=10)
                                     ので、
   第3引数に10より大きな数値をつければ、            上書きできる
function child_theme_setup () {
	 (親テーマの処理を上書きする処理)
}
add_action( 'after_setup_theme', 'child_theme_setup', 20 );




                                                              35
  ご清聴ありがとうございました。




                    36
37
1 of 37

Recommended

ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜 by
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜
ノンプログラマーのためのカンタンWordPressテーマ作成入門 〜子テーマでテーマ作成&カスタマイズ〜Mignon Style
59.4K views111 slides
WordCamp KOBE 「初めてのWordPress!オリジナルのテーマでブログを作る方法」Parkn'Park by
WordCamp KOBE 「初めてのWordPress!オリジナルのテーマでブログを作る方法」Parkn'ParkWordCamp KOBE 「初めてのWordPress!オリジナルのテーマでブログを作る方法」Parkn'Park
WordCamp KOBE 「初めてのWordPress!オリジナルのテーマでブログを作る方法」Parkn'Parkparkn-park
21.7K views43 slides
ノンプログラマーのためのWordPressテーマ作成ステップアップ術 by
ノンプログラマーのためのWordPressテーマ作成ステップアップ術ノンプログラマーのためのWordPressテーマ作成ステップアップ術
ノンプログラマーのためのWordPressテーマ作成ステップアップ術Mignon Style
81.9K views123 slides
WordPress テーマ Habakiri と公式ディレクトリへのテーマ登録 by
WordPress テーマ Habakiri と公式ディレクトリへのテーマ登録WordPress テーマ Habakiri と公式ディレクトリへのテーマ登録
WordPress テーマ Habakiri と公式ディレクトリへのテーマ登録タカシ キタジマ
5.4K views62 slides
ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼ by
ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼
ノンプログラマーのためのカンタンWordPressテーマ作成入門 ∼子テーマで WordPress のテーマをつくろう∼Mignon Style
17.2K views66 slides
WordPress公式ディレクトリテーマ登録のポイント:プラグインテリトリーを理解してハッピーになろう by
WordPress公式ディレクトリテーマ登録のポイント:プラグインテリトリーを理解してハッピーになろうWordPress公式ディレクトリテーマ登録のポイント:プラグインテリトリーを理解してハッピーになろう
WordPress公式ディレクトリテーマ登録のポイント:プラグインテリトリーを理解してハッピーになろうMignon Style
4.7K views29 slides

More Related Content

What's hot

ノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon Style by
ノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon StyleノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon Style
ノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon StyleMignon Style
5.1K views93 slides
WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」 by
WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」
WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」Akari Doi
14.7K views25 slides
更新作業で消耗しない!Web製作者のためのWordPress公式ディレクトリ活用術 by
更新作業で消耗しない!Web製作者のためのWordPress公式ディレクトリ活用術更新作業で消耗しない!Web製作者のためのWordPress公式ディレクトリ活用術
更新作業で消耗しない!Web製作者のためのWordPress公式ディレクトリ活用術Mignon Style
9.5K views63 slides
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー by
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でーWP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でータカシ キタジマ
25.7K views130 slides
〜 デザイン脳×プログラミング脳 〜 デザイナーとプログラマーの72時間戦争 by
〜 デザイン脳×プログラミング脳 〜 デザイナーとプログラマーの72時間戦争〜 デザイン脳×プログラミング脳 〜 デザイナーとプログラマーの72時間戦争
〜 デザイン脳×プログラミング脳 〜 デザイナーとプログラマーの72時間戦争Mignon Style
10K views88 slides
WordBench京都版 _sハンズオン by
WordBench京都版 _sハンズオンWordBench京都版 _sハンズオン
WordBench京都版 _sハンズオンHidetaka Okamoto
2.3K views129 slides

What's hot(20)

ノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon Style by Mignon Style
ノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon StyleノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon Style
ノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon Style
Mignon Style5.1K views
WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」 by Akari Doi
WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」
WordCamp Kansai 2015 はじめの一歩テーマ作成ハンズオン「今あるテーマを有効活用!子テーマではじめるお手軽テーマ作成法」
Akari Doi14.7K views
更新作業で消耗しない!Web製作者のためのWordPress公式ディレクトリ活用術 by Mignon Style
更新作業で消耗しない!Web製作者のためのWordPress公式ディレクトリ活用術更新作業で消耗しない!Web製作者のためのWordPress公式ディレクトリ活用術
更新作業で消耗しない!Web製作者のためのWordPress公式ディレクトリ活用術
Mignon Style9.5K views
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー by タカシ キタジマ
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でーWP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
〜 デザイン脳×プログラミング脳 〜 デザイナーとプログラマーの72時間戦争 by Mignon Style
〜 デザイン脳×プログラミング脳 〜 デザイナーとプログラマーの72時間戦争〜 デザイン脳×プログラミング脳 〜 デザイナーとプログラマーの72時間戦争
〜 デザイン脳×プログラミング脳 〜 デザイナーとプログラマーの72時間戦争
Mignon Style10K views
WordBench京都版 _sハンズオン by Hidetaka Okamoto
WordBench京都版 _sハンズオンWordBench京都版 _sハンズオン
WordBench京都版 _sハンズオン
Hidetaka Okamoto2.3K views
ノンプログラミングWebデザイナーがWordPressをおぼえるためにやったこと 〜巨人の肩にのってみた!〜 by Mignon Style
 ノンプログラミングWebデザイナーがWordPressをおぼえるためにやったこと 〜巨人の肩にのってみた!〜 ノンプログラミングWebデザイナーがWordPressをおぼえるためにやったこと 〜巨人の肩にのってみた!〜
ノンプログラミングWebデザイナーがWordPressをおぼえるためにやったこと 〜巨人の肩にのってみた!〜
Mignon Style3.1K views
Bootstrapを使って効率よくWordPressオリジナルテーマを作る by Yoshinori Kobayashi
Bootstrapを使って効率よくWordPressオリジナルテーマを作るBootstrapを使って効率よくWordPressオリジナルテーマを作る
Bootstrapを使って効率よくWordPressオリジナルテーマを作る
Yoshinori Kobayashi96.1K views
デザイナーとエンジニアの境界線 〜 Are you a Designer or an Engineer? 〜 by Mignon Style
デザイナーとエンジニアの境界線 〜 Are you a Designer or an Engineer? 〜デザイナーとエンジニアの境界線 〜 Are you a Designer or an Engineer? 〜
デザイナーとエンジニアの境界線 〜 Are you a Designer or an Engineer? 〜
Mignon Style16.7K views
UnderScoreとbootstrapとsassでword pressのテーマをつくろう by Takahiro Nakahata
 UnderScoreとbootstrapとsassでword pressのテーマをつくろう UnderScoreとbootstrapとsassでword pressのテーマをつくろう
UnderScoreとbootstrapとsassでword pressのテーマをつくろう
Takahiro Nakahata15.1K views
WordBench 東京 とは by Mignon Style
WordBench 東京 とはWordBench 東京 とは
WordBench 東京 とは
Mignon Style390 views
WordPress アジュール部 テーマ制作について考えること by Web nist
WordPress アジュール部 テーマ制作について考えることWordPress アジュール部 テーマ制作について考えること
WordPress アジュール部 テーマ制作について考えること
Web nist807 views
実録 WordPress Twenty Sixteen のカスタマイズ | WordBench東京 2月勉強会 「みんなのテーマ開発」〜自分の好きな作り方... by Akira Tachibana
実録 WordPress Twenty Sixteen のカスタマイズ | WordBench東京 2月勉強会 「みんなのテーマ開発」〜自分の好きな作り方...実録 WordPress Twenty Sixteen のカスタマイズ | WordBench東京 2月勉強会 「みんなのテーマ開発」〜自分の好きな作り方...
実録 WordPress Twenty Sixteen のカスタマイズ | WordBench東京 2月勉強会 「みんなのテーマ開発」〜自分の好きな作り方...
Akira Tachibana41.2K views
メニューは管理画面で設定できるようにしよう by Mayuko Moriyama
メニューは管理画面で設定できるようにしようメニューは管理画面で設定できるようにしよう
メニューは管理画面で設定できるようにしよう
Mayuko Moriyama12.4K views
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0 by Yuki Okamoto
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
Yuki Okamoto7.1K views
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」 by タカシ キタジマ
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
_s + bootstrapで始めるWordPressテーマ開発入門 by Hidetaka Okamoto
_s + bootstrapで始めるWordPressテーマ開発入門_s + bootstrapで始めるWordPressテーマ開発入門
_s + bootstrapで始めるWordPressテーマ開発入門
Hidetaka Okamoto10.5K views
子テーマを使ったサイト制作 by shimoyama kengo
子テーマを使ったサイト制作子テーマを使ったサイト制作
子テーマを使ったサイト制作
shimoyama kengo1.5K views
文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう by Junko Nukaga
文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう
文系デザイナーでも大丈夫!レスポンシブWEBサイトをWordPressで作ってみよう
Junko Nukaga45.7K views
WordPress中級者への道!テンプレートタグはどう動くのか!? by Shinichi Nishikawa
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
Shinichi Nishikawa5.3K views

Viewers also liked

文系女子デザイナーのためのラクして得するtwentytwelveカスタマイズ by
文系女子デザイナーのためのラクして得するtwentytwelveカスタマイズ文系女子デザイナーのためのラクして得するtwentytwelveカスタマイズ
文系女子デザイナーのためのラクして得するtwentytwelveカスタマイズMami Kuroki
13K views20 slides
「フォントはしゃべる」というお話 by
「フォントはしゃべる」というお話「フォントはしゃべる」というお話
「フォントはしゃべる」というお話Cherry Pie Web
2.4K views20 slides
熊本地震支援Webサイトの実例紹介と支援のためのホームページを作りたい人に絶対知っていてほしいこと by
熊本地震支援Webサイトの実例紹介と支援のためのホームページを作りたい人に絶対知っていてほしいこと熊本地震支援Webサイトの実例紹介と支援のためのホームページを作りたい人に絶対知っていてほしいこと
熊本地震支援Webサイトの実例紹介と支援のためのホームページを作りたい人に絶対知っていてほしいことCherry Pie Web
1.2K views38 slides
アメブロ引越し準備 by
アメブロ引越し準備アメブロ引越し準備
アメブロ引越し準備systemthinkingdev
1.9K views12 slides
FC2からWordPressへ引越し by
FC2からWordPressへ引越しFC2からWordPressへ引越し
FC2からWordPressへ引越しsystemthinkingdev
3.7K views18 slides
アメブロからFC2へ引越し by
アメブロからFC2へ引越しアメブロからFC2へ引越し
アメブロからFC2へ引越しsystemthinkingdev
2.1K views20 slides

Viewers also liked(16)

文系女子デザイナーのためのラクして得するtwentytwelveカスタマイズ by Mami Kuroki
文系女子デザイナーのためのラクして得するtwentytwelveカスタマイズ文系女子デザイナーのためのラクして得するtwentytwelveカスタマイズ
文系女子デザイナーのためのラクして得するtwentytwelveカスタマイズ
Mami Kuroki13K views
「フォントはしゃべる」というお話 by Cherry Pie Web
「フォントはしゃべる」というお話「フォントはしゃべる」というお話
「フォントはしゃべる」というお話
Cherry Pie Web2.4K views
熊本地震支援Webサイトの実例紹介と支援のためのホームページを作りたい人に絶対知っていてほしいこと by Cherry Pie Web
熊本地震支援Webサイトの実例紹介と支援のためのホームページを作りたい人に絶対知っていてほしいこと熊本地震支援Webサイトの実例紹介と支援のためのホームページを作りたい人に絶対知っていてほしいこと
熊本地震支援Webサイトの実例紹介と支援のためのホームページを作りたい人に絶対知っていてほしいこと
Cherry Pie Web1.2K views
Adobe Illustratorによる WordPressテーマ作成ワークフロー by Cherry Pie Web
Adobe Illustratorによる WordPressテーマ作成ワークフローAdobe Illustratorによる WordPressテーマ作成ワークフロー
Adobe Illustratorによる WordPressテーマ作成ワークフロー
Cherry Pie Web6K views
Launch a Web Service in 3 Days Using WordPress by Kite Koga
Launch a Web Service in 3 Days Using WordPressLaunch a Web Service in 3 Days Using WordPress
Launch a Web Service in 3 Days Using WordPress
Kite Koga81.9K views
お客様のための管理画面カスタマイズ by Cherry Pie Web
お客様のための管理画面カスタマイズお客様のための管理画面カスタマイズ
お客様のための管理画面カスタマイズ
Cherry Pie Web8.5K views
熊本地震支援サイトを30分で立ち上げ即日運用開始した話 by Cherry Pie Web
熊本地震支援サイトを30分で立ち上げ即日運用開始した話熊本地震支援サイトを30分で立ち上げ即日運用開始した話
熊本地震支援サイトを30分で立ち上げ即日運用開始した話
Cherry Pie Web3.7K views
Contact Form 7 よくあるカスタマイズ by Cherry Pie Web
Contact Form 7 よくあるカスタマイズContact Form 7 よくあるカスタマイズ
Contact Form 7 よくあるカスタマイズ
Cherry Pie Web99.8K views
WordPressでウェブサービスを作ろう! #wbNagoya by Shinichi Nishikawa
WordPressでウェブサービスを作ろう! #wbNagoyaWordPressでウェブサービスを作ろう! #wbNagoya
WordPressでウェブサービスを作ろう! #wbNagoya
Shinichi Nishikawa48K views
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜 by Yuji Nojima
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
Yuji Nojima68.4K views
concrete5を使って分かった、WordPressのいいところ by Cherry Pie Web
concrete5を使って分かった、WordPressのいいところconcrete5を使って分かった、WordPressのいいところ
concrete5を使って分かった、WordPressのいいところ
Cherry Pie Web5.7K views
.htaccessによるリダイレクト徹底解説 by Cherry Pie Web
.htaccessによるリダイレクト徹底解説.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説
Cherry Pie Web165.7K views

Similar to TwentyTwelveの子テーマつくったらハマった話

CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ by
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズCSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズrie05
18.5K views41 slides
リリース直前WordPress3.5をみてみよう by
リリース直前WordPress3.5をみてみようリリース直前WordPress3.5をみてみよう
リリース直前WordPress3.5をみてみようSeto Takahiro
826 views65 slides
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう! by
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!Takashi Uemura
22.3K views46 slides
WordPressをこれから始める人のためのテーマ講座 by
WordPressをこれから始める人のためのテーマ講座WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座Takami Kazuya
8.7K views56 slides
いちばん簡単なconcrete5テーマ by
いちばん簡単なconcrete5テーマいちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマHideki MACHIDA
5.5K views23 slides
フロンエンドトレンドについて話そう by
フロンエンドトレンドについて話そうフロンエンドトレンドについて話そう
フロンエンドトレンドについて話そうAtushi Sugiyama
897 views16 slides

Similar to TwentyTwelveの子テーマつくったらハマった話(20)

CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ by rie05
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズCSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
rie0518.5K views
リリース直前WordPress3.5をみてみよう by Seto Takahiro
リリース直前WordPress3.5をみてみようリリース直前WordPress3.5をみてみよう
リリース直前WordPress3.5をみてみよう
Seto Takahiro826 views
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう! by Takashi Uemura
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
Takashi Uemura22.3K views
WordPressをこれから始める人のためのテーマ講座 by Takami Kazuya
WordPressをこれから始める人のためのテーマ講座WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座
Takami Kazuya8.7K views
いちばん簡単なconcrete5テーマ by Hideki MACHIDA
いちばん簡単なconcrete5テーマいちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマ
Hideki MACHIDA5.5K views
フロンエンドトレンドについて話そう by Atushi Sugiyama
フロンエンドトレンドについて話そうフロンエンドトレンドについて話そう
フロンエンドトレンドについて話そう
Atushi Sugiyama897 views
CSSフレームワークを使った 簡単なレスポンシブデザインの作成 by Kazuki Akiyama
CSSフレームワークを使った 簡単なレスポンシブデザインの作成CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
Kazuki Akiyama13.3K views
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう! by Takashi Uemura
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
Takashi Uemura3.8K views
「html5 boilerplate」から考える、これからのマークアップ by Yasuhito Yabe
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe6K views
⑳CSSでアニメーション!その1 by Nishida Kansuke
⑳CSSでアニメーション!その1⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1
Nishida Kansuke1.7K views
WordBeachDeathMarchWorkshop by takashi ono
WordBeachDeathMarchWorkshopWordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshop
takashi ono1.5K views
WordPressのデフォルトテーマ Twenty Twelveから見るレスポンシブウェブデザインとモバイルファーストの考え方 by Chieko Aihara
WordPressのデフォルトテーマ Twenty Twelveから見るレスポンシブウェブデザインとモバイルファーストの考え方WordPressのデフォルトテーマ Twenty Twelveから見るレスポンシブウェブデザインとモバイルファーストの考え方
WordPressのデフォルトテーマ Twenty Twelveから見るレスポンシブウェブデザインとモバイルファーストの考え方
Chieko Aihara4.6K views
WordPressのデフォルトテーマ Twenty Twelveから見る レスポンシブウェブデザインと モバイルファーストの考え方@Co-Edo by Chieko Aihara
WordPressのデフォルトテーマ Twenty Twelveから見る レスポンシブウェブデザインと モバイルファーストの考え方@Co-EdoWordPressのデフォルトテーマ Twenty Twelveから見る レスポンシブウェブデザインと モバイルファーストの考え方@Co-Edo
WordPressのデフォルトテーマ Twenty Twelveから見る レスポンシブウェブデザインと モバイルファーストの考え方@Co-Edo
Chieko Aihara1.9K views
Word press 3.5RC2 - パーフェクト functions.php - by BREN
Word press 3.5RC2   - パーフェクト functions.php - Word press 3.5RC2   - パーフェクト functions.php -
Word press 3.5RC2 - パーフェクト functions.php -
BREN11.9K views
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩 by Chieko Aihara
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
Chieko Aihara8K views
WordBenchTokyo-20111126 by webourgeon
WordBenchTokyo-20111126WordBenchTokyo-20111126
WordBenchTokyo-20111126
webourgeon1.9K views
Native x Webでいいとこどり開発 ~ピグトーク~ by Kazunari Hara
Native x Webでいいとこどり開発 ~ピグトーク~Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~
Kazunari Hara1.5K views

TwentyTwelveの子テーマつくったらハマった話

  • 1. TwentyTwelveの 子テーマつく ったらハマった話 2013/03/17 WordBench京都 Cherry Pie Web 川井昌彦
  • 2. 自己紹介 ●川井昌彦(かわいまさひこ) @sakuragi_kei  東京の制作会社で24年間勤めた後、  京都府舞鶴市に帰郷してフリーランスで活動中   実は、DTPのほうが経験が長い (このスライ ドも InDesign で作っています)   実は、MovableTypeのほうが経験が長い  小桜インコ シロハラインコ 黒い柴犬のパパ ・ ・ Cherry Pie Web http://www.cherrypieweb.com 2
  • 3. このスライドは、 こんな人におススメ いわゆる 「Webデザイナー」 • HTMLとCSSはだいたいわかる • JavaScriptは、 どっかのブログに書いてあるのを コピペして使うく らい • PHPは、 WordPressで最低限必要なことを、 解説書とかブログとか読んで、 なんとなくわかっ ているような、いないような ・ ・・ 3
  • 4. まえがき―子テーマとは WordPressの制作 ≒ テーマの作成 一からテーマを作るのは大変 既存のテーマを持ってきて、 一部を改造して使うのが手っ取り早い          その時によく使われる方法が、子テーマ」 「              ※ テーマのメリ トは、 子 ッ 他でもいろいろ説明されているので ここでは省略               WordBench京都2月の、 瀬戸さんのスライ ドとか見ましょう。               http://www.slideshare.net/aschachamaru/ss-16625153 ←これは、子イヌ 4
  • 5. かのこ、 じゃあ、 ひらめいたのだ! 最新WordPressについてくる 公式テーマ「TwentyTwelve」の 子テーマ作って カスタマイズしちゃおう !              なんて、軽く考えていたのですが ・ ・・ 5
  • 7. 子テーマを作るのは、  「良い方法」だけど「簡単な方法」 ではない!   特に、WordPressに付属して るテーマは要注意 く !    (TwentyEleven, TwentyTwelve など)   新しい機能や新しい考え方を盛り込んであるので、      新しい機能をすぐに使える            ↓    新しい考え方を理解しないといけない! 7
  • 9. というわけで、今日は、   実際に「TwentyTwelve」の       子テーマを作りながら、   「ハマりやすい」 ところと      その対処法について            お話しします。 9
  • 10. 本日のメニュー ●まずは、 子テーマを作ってみよう! ●ie8以下にだけ、 子テーマの style.css が適用されない! ●え ? テンプレートにcssの記述がないよ っ ? ●font-sizeの「rem」 て何? なんか小数点が凄いよ っ ! ●タイトルに勝手にサイト名が付いて、  SEO対策のプラグイン入れても変なタイトルになるよ! ●親テーマの functions.php のおせっかいな設定が、  子テーマで上書きできないよ ! 10
  • 11. 子テーマを作ってみよう 子テーマを作るには、  ディ トリを作っ レク て、   style.css に2行ほど書くだけ。 超カンタン! /* Theme Name: WB Kyoto 2013_3 Template: twentytwelve */ これは、最低限の記述で、 ホントは、 他にもいろいろ 書かないといけないのだ。 だまされちゃイケナイのだ! 11
  • 12. 子テーマを適用すると、   親テーマの style.css が適用されなくなる 子テーマでは、cssは子テーマの style.css が使用される 親テーマを流用して 一部だけ改造したいのだから、        親テーマのcssを適用したい            ↓ 子テーマの style.css の先頭に、親テーマの style.css を読み込んで、 子テーマの style.css で上書きしていく @import url('../twentytwelve/style.css');         (注) この方法は、 TwentyEleven までのやりかた 12
  • 13. ie8以下だけ、  子テーマの style.css が適用されない! この方法で、 子テーマの style.css で上書きしてみると ・ ・・ 子テーマの css が  「適用されるところ」「適用されないところ」 と が出て る く !  しかも、     ie8以下 だけ! ・・ ・ でも、 これ、ieが悪いんじゃないんです 。      TwentyTwelve のせいなんです ・ ・・ 13
  • 14. 書き出された HTML を見てみると、  子テーマの style.css の後に、   親テーマの ie.css というのが読み込まれている link rel='stylesheet' id='twentytwelve-style-css' href='http://.../wp-content/themes/twentytwelve/style.css?ver=3.5.1' type='text/css' media='all' / !--[if lt IE 9] link rel='stylesheet' id='twentytwelve-ie-css' href='http://.../wp-content/themes/twentytwelve/css/ie.css?ver=20121010' type='text/css' media='all' / ![endif]-- で、 ここを直そうと思ってテンプレートを見てみると ・ ・・ 14
  • 16. テンプレートにcssの記述がない          どうなってんの ? 実は、 TwentyTwelve の functions.php で記述されている function twentytwelve_scripts_styles() { global $wp_styles; (中略 webfontの読込) /* * Loads our main stylesheet. */ wp_enqueue_style( 'twentytwelve-style', get_stylesheet_uri() ); 16
  • 17. /* * Loads the Internet Explorer specific stylesheet. */ wp_enqueue_style( 'twentytwelve-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentytwelve-style' ), '20121010' ); $wp_styles-add_data( 'twentytwelve-ie', 'conditional', 'lt IE 9' ); } add_action( 'wp_enqueue_scripts', 'twentytwelve_scripts_styles' ); これで、header.php の wp_head() のところにcssが挿入される メインのcssは、 get_stylesheet_uri() で子テーマの style.css が  適用されるが、 ieは、コンディショナルコメン トが生きて、   ie.css が後から適用される。 ie.css は、get_template_directory_uri() が指定されているので、              親テーマの ie.css が適用されてしまう ! 17
  • 18. つまり、 子テーマの style.css に親テーマの style.css を              @import で読み込む方法だと ・ ・・ 1 親テーマの style.css . ネットに書いてある通りじゃ ダメってことなのだ・・・ 2. 子テーマの style.css こんなの、フツー、 親テーマの ie.css 3. わかんないのだ! の順に読み込まれるので、   ie8以下で見たときは、 子テーマの style.css が、       親テーマの ie.css で上書きされてしまう ! 18
  • 19. 対策: 子テーマに functions.php をつくって、 スタイルシートの読み込みを再定義する function wbkyoto_scripts_styles() { global $wp_styles; wp_enqueue_style( 'twentytwelve-style', get_template_directory_uri().'/style.css', array() ); wp_enqueue_style( 'twentytwelve-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentytwelve-style' ), '20121010' ); $wp_styles-add_data( 'twentytwelve-ie', 'conditional', 'lt IE 9' ); wp_enqueue_style( 'wbkyoto-style', get_stylesheet_uri(), array('twentytwelve-ie') ); wp_enqueue_style( 'wbkyoto-ie', get_stylesheet_directory_uri().'/css/wbkyoto-ie.css', array( 'wbkyoto-style' ) ); $wp_styles-add_data( 'wbkyoto-ie', 'conditional', 'lt IE 9' ); } add_action( 'wp_enqueue_scripts', 'wbkyoto_scripts_styles' ); 19
  • 20. (解説) 親テーマの下記の記述では、 子テーマの style.css が読み込まれてしまう wp_enqueue_style( 'twentytwelve-style', get_stylesheet_uri() ); そのため、 子テーマで同じハンドルを使っ 再定義する て、 wp_enqueue_style( 'twentytwelve-style', get_template_directory_uri().'/style.css', array() ); 20
  • 21. なぜ、 こんなややこしいことをしているのか? 1 読込順序 . (依存関係) をコントロールできる 2. バージョン指定により、     ブラウザキャッシュの       コン トロールができる うー、めんどくさくて、 眠くなりそうなのだー 21
  • 22. 読込順序(依存関係) をコントロールできる wp_enqueue_style() は、  記述順に読み込むのではなく、   第3引数に指定されたハン ドルの「次」 に読み込むように指定される さきほどの場合は、  1. 親テーマの style.css ハン : twentytwelve-style ドル  2. 親テーマの ie.css ハン : twentytwelve-ie ドル  3. 子テーマの style.css ハン : wbkyoto-style ドル  4. 子テーマの ie.css ハン : wbkyoto-ie ドル の順に書き出される 22
  • 23. ブラウザキャッシュのコントロールができる 第4引数にバージョ ンを指定すると、 ブラウザキャッシュのコントロールができる (バージョンがGETパラメーターに指定される) chromeのように、 キャッシュが効きすぎてスタイルシートを修正してもなかなか表示に反映され ない場合、 GETパラメータを変えてやることで反映されるようになる いちいちバージョ ンを指定するのも面倒なので、こんな感じで書いておくと、  cssファイルの修正日時を、バージョ して出力して ンと くれるので、オススメ! wp_enqueue_style( 'twentytwelve-style', get_template_directory_uri() . '/style.css', array(), date('YmdHis', filemtime(get_template_directory_uri() . '/style.css')) ); 23
  • 24. テンプレートごと (投稿タイプごととか、カテゴリごとなど) に cssを適用したいとき、 たとえば ・ ・・ single-blog.php → blog.css archive-blog.php → blog.css single-news.php → news.css archive-news.php → news.css ?php function news_scripts_styles() { wp_enqueue_style( 'news-style', get_stylesheet_directory_uri().'/ css/news.css', 'wbkyoto-style' ); wp_enqueue_style( 'news-style-ie', get_stylesheet_directory_uri().'/ css/news-ie.css', 'news-style' ); } add_action( 'wp_enqueue_scripts', 'news_scripts_styles' ); get_header(); ? 24
  • 25. font-sizeの「rem」って何?     なんか、 小数点が凄いよ! TwentyTwelve の style.css には、見慣れない単位がある .site-header h1 { font-size: 24px; font-size: 1.714285714rem; } font-size の値は、アクセシビリティに配慮し、  文字サイズを変えられるようにするため、   親要素からの相対サイズで指定するのが一般的   (例) html が 14px なら、 は、 (12px) p 86% とか 25
  • 26. しかし、親要素を継承するので、だんだんわからなくなる。 (例) html { font-size: 14px; } ul li { font-size: 86%; } li はどんどん小さくなる ul liaaa - 12px ul liaaa/li - 10px /ul /li /ul 14px × 0.86 × 0.86 = ??? 26
  • 27. rem (root em) ルート要素 (htmlタグ) を基準とした相対サイズ (例) html { font-size: 14px; } ul li { font-size: 0.857142857rem; } li は 12px で変わらない。 ul liaaa - 12px ul liaaa/li - 12px /ul /li /ul 27
  • 28. TwentyTwelve - style.css html { font-size: 87.5%; } ← ブラウザのデフォルトが16px 基準の文字サイズが 14px なので、 各フォ トサイズは下記のようになる ン 16px = 1.142857143rem 12px = 0.857142857rem 11px = 0.785714286rem 10px = 0.714285714rem こんなの、 おぼえられないのだー 28
  • 29. 「こんなの、覚えられないよ 」 ! というあなた! 子テーマの style.css の最初にこう書いてしまいましょう。 html { font-size: 10px; } これで、基準の文字サイズが 10pxになったので、 16px = 1.6rem 12px = 1.2rem 11px = 1.1rem これなら、 10px = 1rem わかりやすいのだー 29
  • 30. style.css では、 なぜ rem の前に px を重複して指定しているのか .site-header h1 { font-size: 24px; font-size: 1.714285714rem; } というと ・ ・・   ie8以前は    rem に対応していない          のでした ・・・ みんな、さっさと バージョンアップ してほしいのだ! 30
  • 31. タイトルに勝手にサイト名が付いて、   SEO対策のプラグインを入れると       変なタイ トルになってしまう! All in One SEO Pack、Headspace2 などのSEO対策用プラグイン で、 トルに自動でキーワードやサイ タイ ト名を挿入する対策を行うとき TwentyTwelve で、 これらのプラグインを推奨設定にすると、 投稿のタイ トルにサイ ト名がダブってしまう ・ in One SEOの設定 All %post_title% | %blog_title% ・出力されたTitleタグ title投稿Cherry Pie Wordpress | Cherry Pie Wordpress/title         ↑ 投稿名になぜかサイト名が付いてしまう 31
  • 32. TwentyEleven から、 プラグイン無しの状態でも          タイ トルにサイト名が入るようになっている TwentyEleven は、 テンプレート ファイル header.php に  処理が書いてあったので、 子テーマで変更してやればよかったが、 TwentyTwelve では、functions.php に書かれてしまっ ているので、  テンプレート ファイルでは変更できない TwentyTwelve - functions.php function twentytwelve_wp_title( $title, $sep ) { ・・・ (タイトルにサイト名を追加する処理) ・・・ } add_filter( 'wp_title', 'twentytwelve_wp_title', 10, 2 ); 32
  • 33. add_filter されている処理は、     remove_filter で削除できる でも ・ ・・   functions.php は、    子テーマ → 親テーマ の順で読み込まれるので、 子テーマの functions.php で単に remove_filter( 'wp_title', 'twentytwelve_wp_title'); と書いても、 そのあとで親テーマで add_filterされてしまう ・ ・・ 33
  • 34. 親テーマの functions.php の        処理を変更したい ! 子テーマで親テーマの処理を変更したいときは、  アクションフック after_setup_theme を使う 子テーマ - functions.php function wbkyoto_theme_setup () { remove_filter( 'wp_title', 'twentytwelve_wp_title'); } add_action( 'after_setup_theme', 'wbkyoto_theme_setup' ); TwentyTwelve に限らず、  子テーマで親テーマの functions.php 内の処理を変えたり   キャンセルするときには、 上記の関数の中に追加していけばよい 34
  • 35. 親テーマやプラグインの functions.php の中で、  after_setup_theme でフックされている処理は                    どうするか ? add_action() は、第3引数が小さいほうが先に実行される TwentyTwelve の functions.php にも  after_setup_theme でフックされている関数があるが、   第3引数が設定されていない (デフォル ト値=10) ので、    第3引数に10より大きな数値をつければ、 上書きできる function child_theme_setup () { (親テーマの処理を上書きする処理) } add_action( 'after_setup_theme', 'child_theme_setup', 20 ); 35
  • 37. 37