Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
38
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@ironsand

Wordpressでテンプレートファイルをロードする5つの方法とその違い

Wordpressはテンプレートファイルを読み込む関数が複数あって、どのような違いがあるかわからなかったので調べてみた。

1. include

まずはPHP自体の機能として備わっている外部ファイルの読み込みを行う include を使う方法。

include(TEMPLATEPATH . '/template-name.php');

長所:最も高速
短所:ファイルの存在の有無をチェックしない

2. load_template()

次は load_template()、ここからはWordpressの関数

load_template(TEMPLATEPATH . '/template-name.php');

長所:高速
短所:やっぱりファイルの有無のチェックはしない。フルパスで記述しないといけない。

3. locate_template()

続いては locate_template() を使う方法

locate_template($template_names, $load);

長所:
ファイルの探索をしてくれるので絶対パスじゃなくて良い.
ファイルを include することもできる。 $load が true ならよみこんで false ならパスを追加するだけ。

$template_names はテンプレート名が入った配列。既にここに存在していたらincludeはされないようにしてくれる。

4. get_query_template()

書くのめんどくさくなってきた。

…次は get_query_template()を使う方法!

include(get_query_template('template-name'));

拡張子なしで読み込んでくれるよ、やったー!

5 get_template_part()

Wordpress3.0から使える関数。とてもパワフル、というか多分これしか基本的に使わない。なんだったんだ、今までの説明は…。

get_template_part('loop'); // general loop, file 'loop.php'
get_template_part('loop', 'index'); // loop for index, file 'loop-index.php'
get_template_part('loop', 'single'); // loop for single post, file 'loop-single.php'

な感じで読み込めます。

参考

5 Ways To Include Template Files In WordPress - Deluxe Blog Tips
http://www.deluxeblogtips.com/2010/06/wordpress-include-template-files.html

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
38
Help us understand the problem. What is going on with this article?