こんにちは。かずです。
WordPressでのコーディングしはじめた頃って
1つのテンプレートにとにかくHTMLを書いちゃってませんか?私はそうでした・・・
一覧ページならarchive.phpやtaxonomy.phpなど。
詳細ページならsingle.phpやsingle-〇〇.phpなどなど。
必要なHTMLとPHPをそのまま書いて、「とりあえず動けばOK」という感じです。
もちろん、それでもサイトは完成します。
でも仕事を続けているうちに、気付けばよく使うようになっていたものがあります。
それが今回ご紹介の「get_template_part()」です。
とっても便利なこの関数を使うようになった経緯や、使うときに意識していることについて書いてみます。
共通化の意識
制作を始めた頃は、「このHTMLはここでしか使わないだろう」と思って、そのままテンプレートに書くことがほとんどでした。
でも実際は、お知らせ一覧やブログ一覧、関連記事、トップページの新着情報など、似たようなレイアウトを使う場面が意外と多くあります。
そのたびに同じようなHTMLを書いていると、修正が入ったときに複数のテンプレートを直さなければいけません。
小さな修正でも、様々なテンプレートに書いてあると修正漏れが発生することも多いです。
デザインを見たらまず最初に
意識するようになると、コーディングを始める前に、「このパーツは共通化できそうか」を考えるようになりました。
当然ですが、デザインが共通していることが前提です。
記事カードやボタンなど、同じ見た目で使われるパーツなら、get_template_part() でまとめることができます。
修正が入ったときも、一か所直すだけで済むので保守性が格段に違います。
大きなサイトでデザインが30ページ以上あったりすると確認だけで一苦労ですが・・・
事前にデザイナーさんと共通パーツの認識を合わせておくのも手ですね。連携大事。
少し違うだけならぜひ提案を
実務では、「ほとんど同じだけど、少しだけ違う」というデザイン・・・よく見かけますよね。
ボタンの角丸やタイトルの文字サイズが少しだけ違う、余白が数px違う、などなど・・・あげはじめるとキリがありません。
そんなときは、「ここはデザインを共通化してもいいですか?」と投げかけてみてください。
もちろん、デザインとして意図があるならそのまま実装します。
デザインから明らかに意図があれば、無理に共通化する必要はありません。
でも、違いに明確な理由がないのであれば、共通化することは制作側も運用側もメリットが非常に大きいです。
実装しやすさだけでなく、後から誰でも管理しやすいかという視点で見てみるといいかもしれません。
テンプレートファイルが読みやすくなる
get_template_part() のいいところは、テンプレートファイル自体がすっきりすることです。
一覧ページに以下が書かれていれば、この部分は記事のカードレイアウトだなとすぐにわかります。
<?php get_template_part('template-parts/card'); ?>
HTMLが長くなりすぎず、テンプレートファイル全体の流れも追いやすくなります。
過ぎたるは猶及ばざるが如し
何でもかんでもまとめればいいわけではありません。
一度しか使わないパーツまで分割すると、「このコードどこにあるんだっけ?」となってしまうこともあります。
ホームページの規模が大きくなればなるほどファイルも増えますしね。
なので、今後も使いそうだったり、修正がありそうなパーツだけを共通化するようにしています。
修正があった後に実は共通でいいって事もあるので、最初から考えすぎない事も大切だと思います。
最後に
案件によって不要な場合もありますが、意外と共通パーツはあったりするのでぜひ取り入れてみてください。
最初は小さなパーツからでも、きっと便利さを実感できると思います。
それでは!
JOURNALが気に入ったら「いいね」してね!



