WordPressのテンプレートファイルは、いろいろな方法で作成できるため、カスタマイズするときの調査が難しくなっています。管理画面で設定できる表示設定と、固定ページや投稿ページを表示するために使用されるテンプレートファイルなどの関係について調べてみました。調査したのは次に示すWordpressのフリーのテーマ「Responsive」です。トップページを作成し、固定ページとブログのページには右側にサイドバーを付けました。

[responsive]Responsive[/responsive]

次のように管理画面の表示設定を選択し、「フロントページの表示」の「最新の投稿」にチェックを付けました。

[responsive]管理画面の表示設定[/responsive]

トップページの表示

「http://example.net/」のようなURLのトップページを表示させると、front-page.phpがで実行されます。このファイルを実行すると管理画面の外観のデータ設定の「ホームページ」の「ヘッドライン」「サブヘッドライン」「コンテンツエリア」で設定された内容がトップページに表示されます。管理画面の外観のデータ設定を次に示します。

[responsive]トップページのコンテンツ設定[/responsive]

また、get_sidebar(‘home’)によりサイドバー画面を呼び出しています。この呼び出しにより、ホームウィジェットをトップページに設定します。ホームウィジットは、次に示す管理画面の外観のウィジットの「ホームページウィジェット1」、「ホームページウィジェット2」、「ホームページウィジェット3」により設定できます。

front-page.phpが存在しないときは、home.phpが呼び出され、表示は投稿の一覧表が表示され、トップページは表示されません。

固定ページ

管理画面の固定ページの編集の右側に表示されるテンプレートに従って作成する。選択できるテンプレートを次に示す。

[responsive]固定ページテンプレート選択[/responsive]

今回は、固定ページにテンプレートの「コンテンツ/サイドバー」を選択しました。このテンプレートファイルは「content-sidebar-page.php」になります。

content-sidebar-page.php

    ・
    ・
<?php while (have_posts()) : the_post(); ?>

	<?php responsive_entry_before(); ?>
	<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>       
		<?php responsive_entry_top(); ?>

        <?php get_template_part( 'post-meta-page' ); ?>
        
        <div class="post-entry">
            <?php the_content(__('Read more &#8250;', 'responsive')); ?>
            <?php wp_link_pages(array('before' => '<div class="pagination">' . __('Pages:', 'responsive'), 'after' => '</div>')); ?>
        </div><!-- end of .post-entry -->
    
		<?php get_template_part( 'post-data' ); ?>
		               
		<?php responsive_entry_bottom(); ?>      
	</div><!-- end of #post-<?php the_ID(); ?> -->       
	<?php responsive_entry_after(); ?>
    
	<?php responsive_comments_before(); ?>
	<?php comments_template( '', true ); ?>
	<?php responsive_comments_after(); ?>
    
<?php endwhile; 
    ・
    ・

右側にサイドバーを付けたため、php get_sidebar(‘right’)でsidebar-right.phpが呼び出されます。右側サイドバーに表示する内容は、管理画面の外観のウィジェットの「右サイドバー」により、次にように設定できます。

[responsive]右サイドバーウィジェット[/responsive]

1.当たり前の話ですが、front-page.phpが無くても、直接固定ページのURLを入力すれば、content-sidebar-page.phpさえあれば固定ページは表示します。

2.content-sidebar-page.phpが存在しないときは、page.phpが使用されますが、「ホーム>お問合せ」などのパンくずリストは表示されません。

投稿ページ

blog.phpで走行ページの一覧表が表示されます。一覧表に表示されている投稿をクリックすると、single.phpが実行されて、投稿の本文が表示されます。

blog.php

    ・
    ・
while ( $blog_query->have_posts() ) : $blog_query->the_post(); ?>

	<?php responsive_entry_before(); ?>
	<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>       
		<?php responsive_entry_top(); ?>
			
			<?php get_template_part( 'post-meta' ); ?>
			
			<div class="post-entry">
				<?php if ( has_post_thumbnail()) : ?>
					<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" >
				<?php the_post_thumbnail(); ?>
					</a>
				<?php endif; ?>
				<?php the_content(__('Read more &#8250;', 'responsive')); ?>
				<?php wp_link_pages(array('before' => '<div class="pagination">' . __('Pages:', 'responsive'), 'after' => '</div>')); ?>
			</div><!-- end of .post-entry -->
			
			<?php get_template_part( 'post-data' ); ?>
		               
		<?php responsive_entry_bottom(); ?>      
	</div><!-- end of #post-<?php the_ID(); ?> -->       
	<?php responsive_entry_after(); ?>
		
<?php endwhile;
    ・
    ・

blog.phpが存在しない場合、index.phpが実行されますが、投稿の一覧表は表示されません。