各テンプレートにおいて共通する部分のコードをパーツとしてまとめておけば、修正などを効率的に行うことができます。そのテンプレートパーツはget_template_part関数で読み込むことができます。
スポンサーリンク
例えば以下のようなindex.phpテンプレートがあるとします。
関連ページ
アイキャッチを利用する[add_theme_support]
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php get_header(); ?> <main> <?php if(have_posts()): while(have_posts()):the_post(); ?> <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1> <time datetime="<?php the_time('Y-m-d'); ?>"><?php the_time('Y.m.d'); ?></time> <p><?php the_category(', '); ?></p> <!--アイキャッチ画像--> <?php if( has_post_thumbnail() ): ?> <a href="<?php the_permalink(); ?>" ><?php the_post_thumbnail('thumbnail'); ?></a> <?php else: ?> <a href="<?php the_permalink(); ?>" ><img src="<?php echo get_template_directory_uri(); ?>/images/no-image.png" ></a> <?php endif; ?> <!--アイキャッチ画像End--> <p><?php the_content('Read more'); ?></p> <?php endwhile; endif; ?> <?php previous_posts_link('新しい投稿ページへ'); ?> <?php next_posts_link('古い投稿ページへ'); ?> </main> <?php get_sidebar(); ?> <?php get_footer(); ?> |
7行目から20行目のループの中をパーツ化します。
まず適当な名前のファイル(今回はloop.php)を用意して、テーマディレクトリにアップロードします。そのテンプレートパーツであるloop.phpには7行目から20行目の部分をそのまま記述します。
loop.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1> <time datetime="<?php the_time('Y-m-d'); ?>"><?php the_time('Y.m.d'); ?></time> <p><?php the_category(', '); ?></p> <!--アイキャッチ画像--> <?php if( has_post_thumbnail() ): ?> <a href="<?php the_permalink(); ?>" ><?php the_post_thumbnail('thumbnail'); ?></a> <?php else: ?> <a href="<?php the_permalink(); ?>" ><img src="<?php echo get_template_directory_uri(); ?>/images/no-image.png" ></a> <?php endif; ?> <!--アイキャッチ画像End--> <p><?php the_content('Read more'); ?></p> |
次に上記のloop.phpテンプレートパーツをget_template_part関数を利用してindex.phpに読み込みます。
index.php(修正後)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php get_header(); ?> <main> <?php if(have_posts()): while(have_posts()):the_post(); ?> <?php get_template_part('loop'); ?> <?php endwhile; endif; ?> <?php previous_posts_link('新しい投稿ページへ'); ?> <?php next_posts_link('古い投稿ページへ'); ?> </main> <?php get_sidebar(); ?> <?php get_footer(); ?> |
7行目でloop.phpを読み込んでいます。
他のpage.phpやsingle.phpなどでも共通している部分をこのようにテンプレートパーツとして作成しておくと、修正作業などが楽になります。
get_template_part関数は2つのパラメータを指定することができます。例えばloop-index.phpというテンプレートパーツを作成した場合は、下記のようなコードで読み込むことが可能となります。
1 |
<?php get_template_part('loop','index'); ?> |
loop-index.phpのハイフンの前半(loop)を第1パラメータに、後半(index)を第2パラメータに指定しています。
参照ページ
WordPress
Codex日本語版