WordPressのget_template_part()という関数をご存知でしょうか?
僕がWordPressを使ってサイト制作をする際はよく使用するのですが、いつの間にかget_template_part()に引数が取れるようになっていました。
これによって使い勝手が増したと思うのは僕だけでしょうか??
今日のブログではWordPressのget_template_part()について記録に残した意図思います!
目次
WordPressのget_template_part()って何?
まずは念の為WordPressのget_template_part()について確認しておきましょう!
WordPressのget_template_part()関数は、共通部品を1つにまとめたPHPファイルなどを呼び出す時などに使うことが多いです。
例えば、
上記のようなボタンのパーツは、ボタンのテキストなど一部差異はあったとしても、Webサイト内で複数箇所使うことがよくあると思います。
こういったボタンのパーツのコードをを複数箇所に書いてしまうと、同じようなコードが複数箇所に存在することになります。
もしボタンに関して何らかの修正が必要になると、対象箇所全部のコードを直す必要が出てくるので、メンテナンス性が非常に悪くなりますよね。。。
しかし、get_template_part()を使えば、
- ボタンを表示させたいところはget_template_part()を記述する。
- ボタンの中身については担当するPHPファイル1つをいじる。
上記のような状態になるので、メンテナンス性が著しく向上するわけです!
基本的なget_template_part()の使い方
簡単にではありますがget_template_part()の基本的な使い方を見ていきましょう!
get_template_part($slug, $name);
get_template_part()の基本的な書き方は上記の通りです。
- $slug・・・テンプレートのパス
- $name・・・特定テンプレート名(省略可)
WordPressでは、ファイルのある場所を指し示すものを$slugと呼んでいます。
例えば、自作テーマ内の直下にpage.phpというファイルがあり、そのファイルをget_template_part()を使って読み込みしたい場合は、以下のように記述をします。
(page.phpをget_template_part()を使って読み込みすることはあまりなさそうですが、、、)
get_template_part('page');
しかし、page.phpはさらに細かく使用用途を分けて使いたい場合、page-about.php・page-faq.phpのように、-をつけて、その後に特定の名前を添えた形のファイル名に指定することもよくあります。
こういった場合は、以下のように指定します。
get_template_part('page', 'about');
aboutの部分が$nameに当たるわけですね!
また、特定ディレクトリの中にあるファイルをget_template_part()を使って読み込みしたい場合は、以下のように記述します。(以下はtemplateディレクトリの中にあるファイルを読み込みする場合)
get_template_part('template/page','about');
ディレクトリ内の中にさらにディレクトリがあり、その中にあるファイルを読み込みしたい場合は、以下のようになります。(以下はtemplateディレクトリの中にaboutディレクトリがあり、その中のファイルを読み込みする場合)
get_template_part('template/about/page','about');
以上の内容を抑えることができれば、get_template_part()の基本的な使い方は抑えられると思います!
WordPressのget_template_part()に任意の引数が渡せるようになったことで広がる使い方
WordPressのget_template_part()には今まで任意の引数を渡すことができなかったのですが、WordPress5.5から任意の引数が渡せるようになったようです!
例えば下記のような記述が可能になります!
$page_title = 'about';
get_template_part('template/section','header', $page_title);
ページの見出し周りの部分をsection-header.phpという形でまとめたとします。
各ページに使用する場合、パーツとしては同じなんだけれどもページ名はページごとに違うという場合、任意の引数にページ名が保存された変数を入れてあげることで、section-header.phpを各ページで使い回すことが可能になります。
だいぶ使い道が増えますよね!
まとめ
ということで、今回はWordPressのget_template_part()が引数を取れるようになって使い勝手が増した話を書いてみました!