成果物をまとめて確認する
[成果物]WordPressテーマ開発:スタイルシート読み込み完全ガイド
【WordPressテーマ開発:スタイルシート読み込み完全ガイド】の成果物です。投稿の学びを終えた時点の構成を一覧でご確認いただけます。
前回の記事では、WordPress標準ヘッダー・フッターでテーマ機能を最大化する方法を学習しました。wp_head()
とwp_footer()
関数の実装により、WordPressの機能をフル活用できるテーマの基盤が完成しました。
今回は、スタイルシートをサイトに適用する方法について詳しく解説します。今までの記事に比べると内容が難しいですが、とても重要なことなので、しっかり学びましょう。
今回の目標
link
タグの直書きによる読み込み方法get_stylesheet_directory_uri()
関数の活用wp_enqueue_style()
を使った WordPress推奨方式目次
まずは、スタイルシートの適用がわかりやすいように、style.cssに以下のコードを追加しましょう。
/*
Theme Name: マイ・オリジナルテーマ
*/
h1 {
color: red;
}
これで、スタイルシートが適用されたら見出しが赤くなるはずです。
一般的なHTML形式のlink
タグをheader.phpに追加してみましょう。
<link rel="stylesheet" href="style.css">
このコードをheader.phpの
タグ内に追加します。<head>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php the_title(); ?></title>
<?php wp_head();?>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1><?php the_title(); ?></h1>
<?php wp_nav_menu('header-menu'); ?>
</header>
<main>
したがって、以下のように修正する必要があります。
<link rel="stylesheet" href="/wp-content/themes/sample-theme/style.css">
/wp-content/themes/sample-theme/
を毎回書くのは面倒です。そこで、WordPressの便利な関数を使います。
get_stylesheet_directory_uri()
関数は、style.cssがあるパス(テーマフォルダのURL)を取得する関数です。
<link rel="stylesheet" href="<?php echo get_stylesheet_directory_uri(); ?>/style.css">
このようにすることで、以下のパスを参照することができます。
http://sample.local/wp-content/themes/sample-theme/style.css
この関数はスタイルシート以外でも使用できます。例えば、img
タグのsrc
などでも使用します。
style.cssファイルがあるフォルダ(すなわちテーマフォルダ)のパスを取得するので、テーマフォルダ内にある画像を指定する場合にも使うことができます。
<img src="<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" alt="ロゴ">
まず、header.phpに追加したlink
タグを削除してください。
これから試す方法と先ほど試した方法、どちらが有効になっているかわかりやすくするためです。
<link rel="stylesheet" href="<?php echo get_stylesheet_directory_uri(); ?>/style.css">
次に、style.cssの色も変更します。これも、わかりやすくするためです。
/*
Theme Name: マイ・オリジナルテーマ
*/
h1 {
color: blue;
}
red
から blue
に変更しました。これで、新しい方法でスタイルシートが読み込まれれば、見出しが青色になるはずです。
WordPressには、スタイルシートを読み込むための専用の仕組みがあります。functions.phpファイルに以下のように変更します。
変更前:
<?php
// 外観→メニューの有効化
add_theme_support( 'menus' );
?>
変更後:
<?php
// 外観→メニューの有効化
add_theme_support( 'menus' );
// スタイルシートの読み込み
add_action('wp_enqueue_scripts', 'load_theme_style');
function load_theme_style() {
wp_enqueue_style(
'theme-style',
get_stylesheet_directory_uri() . '/style.css',
array(),
'1.0.0'
);
}
?>
add_action
関数は、WordPressのアクションに任意の処理を追加する関数です。
wp_enqueue_scripts
は、WordPressが標準のスタイルやスクリプト、プラグインのスタイルやスクリプトを読み込むアクションです。
すなわち、「WordPressがスタイルやスクリプトを読み込むときに、load_theme_style
に書いた処理も一緒に実行してね」という意味になります。
wp_enqueue_style
関数は、WordPressに指定したスタイルシートを読み込んでもらう指示です。
'theme-style'
:スタイルシートの識別子(WordPress内でユニークな名前である必要があります)get_stylesheet_directory_uri() . '/style.css'
:スタイルシートのパスarray()
:依存関係(詳細は後の記事で説明します)'1.0.0'
:バージョン番号(キャッシュ対策として重要)4番目の引数 '1.0.0'
はバージョン番号です。この番号を変更することで、更新されたスタイルシートを確実にブラウザに読み込むことができます。これが、wp_enqueue_style
のメリットの1つです。
<link rel='stylesheet' id='theme-style-css' href='http://sample.local/wp-content/themes/sample-theme/style.css?ver=1.0.0' type='text/css' media='all' />
link
タグのID
属性がtheme-style
で指定したスタイルシートの識別子になっています。-css
が自動で付加されていますね。
href
属性にはstyle.cssのパスが正しく設定されています。また?var=1.0.0
が自動で付加されバージョン管理が行われていることがわかります。
今回は、WordPressテーマでスタイルシートを読み込む2つの方法を学習しました。
link
タグ直書き方式:HTML標準の方法だが、WordPress環境では推奨されないwp_enqueue_style
方式:WordPress推奨の方法で、より安全で管理しやすいWordPress開発においては、wp_enqueue_style()
を使った方法が推奨されます。最初は複雑に感じるかもしれませんが、WordPressの仕組みを理解する上で重要な概念です。
functions.phpは、WordPressテーマ開発において避けては通れない重要なファイルです。今回学んだwp_enqueue_style()
の書き方をマスターすることで、今後のWordPressカスタマイズが格段に楽になります。「難しそう」と思わず、一歩ずつ確実に進んでいきましょう。
次回は、さらに実践的な内容をお届けします。
WordPressテーマ開発において、より効率的で保守性の高いスタイル管理方法を学んでいきましょう。
次回もお楽しみに!
この記事で作成した成果物は、以下のページでまとめて確認することができます。
WordPress標準のヘッダー・フッター機能を実装し、WordPressの機能をフル活用できるテーマに改良する方法を解説します。wp_head()とwp_footer()関数の実装により、管理画面での設定がWebページで正しく反映される環境を構築し、プラグインの機能も有効化できるプロフェッショナルなテーマへと進化させます。
wp_enqueue_styleを使った実践的なWordPressスタイルシート管理方法を解説。style.cssとは別のファイルでスタイルを管理し、複数のスタイルシートを効率的に読み込む方法を学習します。依存関係の設定による読み込み順序制御、自動バージョン更新など、プロの開発現場で使われる実践的な技術を詳しく説明します。
WordPressを効率よく確実に学ぶためには、学習の順序が大切です。知識が自然に積み上がるよう、学習ステップに沿って記事を順番に並べています。
学習ストーリー第24話まで掲載中