WordPress5.5へのバージョンアップで、大きく機能が追加されました。中には変更に戸惑っている人もいるかも知れませんが、個人的にはエンジニアの要望を大きく取り入れて自由度がアップした印象があります。
今回はその中でも、多くの方が待ち望んでいた「get_template_part」の変更点についてご紹介します。
get_template_partとは
get_template_part
WordPressにおけるincludeとしての役割で用いられるこの関数では、ファイルの分割をする際に用いられます。例えば、一覧での記事ループに置いて、ループで表示させる記事部分のみをファイルわけして管理するなど、可視性を良くするためにも活用している人は多いでしょう。
しかし、WordPress5.4までは読み込み先のファイルに変数を渡すことができないという難点がありました。記事ループ自体では記事情報がグローバルに格納されているため、変数を渡す必要がありませんが、他の値などをループさせるときには大いに不便です。
しかし、5.5ではget_template_partに第3引数が追加され、配列形式で変数を渡すことができるようになりました。
変数を渡す方法
<?php
get_template_part('templates/archive', 'article', ['koko' => 'こ↑こ↓']);
上記の用に、第3引数で配列を渡しています。これにより、以下のファイルでは第3引数で渡した配列の値を使用することができるようになります。
テーマディレクトリ/templates/archive-article.php
もし、スラッグを含まないファイル(get_template_partで第2引数を必要としない)に対して変数を渡す場合は、以下のように記述することで値を渡すことが可能です。
<?php
get_template_part('templates/archive', null, ['koko' => 'こ↑こ↓']);
変数を受け取る方法
では、読み込み先のファイルでどのようにして値を出力するのかを見ていきましょう。
テーマディレクトリ/templates/archive-article.php内の記述
<?php
$args['koko']; # こ↑こ↓
読み込み先のファイルでは、$argsという変数に対して第3引数で指定した配列が格納されています。もしオブジェクトや連想配列を渡す場合に置いても、同じように配列に格納してキーを割り振れば取得することが可能です。
キーの指定がなければ、添え字(0から順番)が割り当てられます。
このようにすることで、より自由度の高い組み合わせが実現できるようになりました。
まとめ
いかがだったでしょうか。
今回はWordPressについて、バージョン5.5で進化した「get_template_part」についてご紹介しました。
WordPressのバージョンアップでは、様々な要望が取り入れられ、より使いやすくフレキシブルなものになっています。変更に戸惑っている人は、テーマファイルのカスタマイズや使い方が間違っていたり、非推奨になっている機能を使用している可能性があります。
ぜひ、様々な機能を取り入れながらサイト開発・ブログ運営をしていきましょう。