子テーマを作る時、CSS を読み込むポイント
- 親テーマ CSS を子テーマから読み込むには、functions.php で wp_enqueue_style 関数を使用する。
- 子テーマの style.css で @import url(“../twentyfifteen/style.css”); とする方法は古く、非推奨 ← 子テーマ – WordPress Codex 日本語版
- 子テーマで外部の CSS を読み込む時も、同様に wp_enqueue_style 関数を使用する。用途は親テーマの CSS の読み込に限定されない。
本投稿は、【WordPress】Twenty Fifteen の子テーマを作った記録! | oki2a24 の続きですの♪「CSS の読み込み方が実は古い。」という課題を、解決しましたので記録いたしました。
実際の子テーマのソース修正部分・内容
子テーマの functions.php への変更
- 親テーマ Twenty Fifteen の style.css
- ウェブフォント Noto Sans Japanese の notosansjapanese.css
以上 2 つの CSS を @import ではなく、 wp_enqueue_style 関数を使用して読み込みます。
次のようになりました。まずは functions.php に追加した部分です。
/** * CSS を読み込みます。 */ function theme_enqueue_styles() { // 親テーマの CSS を読み込み wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); // ウェブフォントの読み込み wp_enqueue_style( 'oki2a24com-twentyfifteen-child-fonts', '//fonts.googleapis.com/earlyaccess/notosansjapanese.css'); } add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
- 関数リファレンス/wp enqueue style – WordPress Codex 日本語版
- 関数リファレンス/get template directory uri – WordPress Codex 日本語版
上記ソースについて、少し解説いたします。 wp_enqueue_style 関数は wp_enqueue_style( $handle, $src, $deps, $ver, $media ); という形を取ります。
最初の $handle は「スタイルシートのハンドルとして使われる名称。」とのことなのですが、最初はよくわかりませんでした><。しかし反映後の HTML ソースを見て、$handle はタグの id 要素に使われる名称なのだとわかりましたの♪
さらに、-css が付け足され、$handle + “-css” という文字列が id となりこともわかりました。よって、$handle には、css を含める必要がございませんこと、ポイントですわね♪
続いて、get_template_directory_uri 関数ですの!
こちらのget_template_directory_uri 関数は、テンプレートディレクトリの URI を取得いたします。あらあら?
get_template_directory_uri() . ‘/style.css’ と書くことで、親テーマの style.css を取得することが目的でした。子テーマにこの記述をいたしますと、子テーマのテンプレートディレクトリの URI を得てしまい、親テーマの URI が得られ無いはずですの><。どういうことかしら?
get_template_directory_uri 関数の説明をもう少し読んでみますと、「子テーマを使用している場合、親テーマのディレクトリの URI を返します。」とあります。なあんだ、欲しいものは親テーマのディレクトリの URI ですので、子テーマで get_template_directory_uri 関数を使用して親テーマのディレクトリの URI + style.css を得ることができました♪
さて、結果を見てみましょう♪
親テーマの CSS を読み込み、出力される HTML は次のようになりますわ♪
<link rel='stylesheet' id='parent-style-css' href='https://oki2a24.com/wp-content/themes/twentyfifteen/style.css?ver=4.1' type='text/css' media='all' />
そして、ウェブフォントを読み込んだ部分の出力される HTML はこうなりましたの♪
<link rel='stylesheet' id='oki2a24com-twentyfifteen-child-fonts-css' href='//fonts.googleapis.com/earlyaccess/notosansjapanese.css?ver=4.1' type='text/css' media='all' />
子テーマの style.css への変更
続いてですけれども、逆に style.css から削除いたしました。次の2行ですの。
@import url("../twentyfifteen/style.css"); @import url(http://fonts.googleapis.com/earlyaccess/notosansjapanese.css);
おわりに
この投稿には、続きがございます。
それはこれから書くのですけれども、この後に「投稿の編集ページのフォントが Noto Serif で見つからないため設定されない。」問題を解決いたしましたら、ウェブフォントの読み込みが不要となりましたの!
今にして考えてみれば、当たり前ですわ♪編集画面でのフォントと、表示部分のフォントを1回で指定できた方がスマートですものね。さすが公式テーマですの♪さすが!
公式テーマはそんなところまで考えて作られていること、記録に残しませんと!
以上です。
「【WordPress】Twenty Fifteen 子テーマ の CSS の読み込み方を最新のやり方に改めました♪@import → wp_enqueue_style 関数」への2件の返信
[…] 【WordPress】Twenty Fifteen 子テーマ の CSS の読み込み方を最新のやり方に改めました♪@import → wp_enqueue_style 関数 […]
[…] 情報源: 【WordPress】Twenty Fifteen 子テーマ の CSS の読み込み方を最新のやり方に改めました♪@import → wp_enqueue_style 関数 | oki2a24 […]