WordPressでHTMLサイトを移行する際、既存サイトのように「最初にイントロページを表示して数秒後にトップページへ移動する」という構成を再現したい場合があります。
しかし、WordPressにはテンプレート階層という独自の仕組みがあり、front-page.phpは特別な役割を持つため、HTMLサイトと同じ考え方でページファイル名を変更すると混乱しやすくなります。この記事では、front-page.phpをメインページとして維持しながら、イントロページを先に表示する方法について解説します。
WordPressのfront-page.phpが特別扱いされる理由
WordPressでは、トップページを表示する際にテンプレート階層というルールに従って使用するPHPファイルが決定されます。
その中でもfront-page.phpは特別なテンプレートで、WordPressの設定で「サイトのホームページ」に指定されている場合、最優先で読み込まれます。
そのため、HTMLサイトのようにintro.htmlをトップページとして配置し、その後index.htmlへ移動するという構成を、そのままfront-page.phpとpage-home.phpだけで再現することはできません。
front-page.phpの前に別ページを表示することは可能か
結論として、front-page.phpより前に別のページを表示することは可能です。ただし、WordPressのテンプレート階層を変更するのではなく、イントロページを通常の固定ページとして作成する方法が一般的です。
例えば、以下のような構成にします。
| 役割 | 作成するもの |
|---|---|
| イントロ画面 | 固定ページ(例:intro) |
| メインページ | front-page.php |
つまり、front-page.php自体を変更するのではなく、訪問者が最初にアクセスするURLをイントロページにして、そこからfront-page.phpへ移動させる形にします。
方法1:固定ページをイントロページとして作成する
まずWordPress管理画面から固定ページを作成します。
例えば「イントロ」という名前の固定ページを作成し、テーマ側ではpage-intro.phpというテンプレートファイルを用意します。
ファイル構成例は以下のようになります。
front-page.php
page-intro.php
page-intro.phpにはタイプライター演出などのHTMLやJavaScriptを記述します。
そして5秒後にJavaScriptでトップページへ移動させます。
<script>
setTimeout(function(){
location.href = "";
},5000);
</script>
この方法なら、メインページはfront-page.phpのまま維持できます。
方法2:WordPressの入口URLをイントロページに変更する
固定ページを作成しただけでは、通常はWordPressのトップURLへアクセスするとfront-page.phpが表示されます。
そのため、サイト訪問時にイントロページを表示したい場合は、入口となるURLの設定を変更する必要があります。
代表的な方法として、以下があります。
- サーバー側でリダイレクト設定を行う
- 専用プラグインを利用する
- テーマ側で条件分岐を設定する
初心者の場合は、リダイレクト系プラグインを利用する方法が比較的安全です。
テーマ側でイントロ表示を制御する方法
PHPで制御したい場合は、functions.phpなどでアクセス状況を確認してイントロページへ移動させる方法もあります。
例えば、初回訪問者だけイントロページを表示し、2回目以降は通常のトップページを表示するような仕組みも作成できます。
ただし、テーマファイルを直接編集する場合は、WordPressアップデートやテーマ変更で設定が消える可能性があります。そのため、子テーマを利用することがおすすめです。
固定ページをホームページに設定する場合の注意点
WordPress管理画面の「設定」から表示設定を変更すると、固定ページをサイトのトップページとして利用できます。
しかし、この方法ではfront-page.phpが期待通り動作しなくなる場合があります。
front-page.phpを必ずメインページとして利用したい場合は、ホームページ設定を変更するよりも、イントロページを別URLとして作成してリダイレクトする構成の方が管理しやすくなります。
SEOや表示速度にも注意する
イントロページを設置する場合、デザイン性だけではなくSEOやユーザー体験にも注意が必要です。
5秒間の待ち時間は、訪問者によっては長く感じる場合があります。また検索エンジンはイントロページを本来のコンテンツページとして評価しない可能性があります。
企業サイトなどで演出目的のイントロを使う場合は、スキップボタンを設置したり、検索エンジン向けに適切なトップページ構造を用意したりすると良いでしょう。
まとめ
WordPressではfront-page.phpがトップページ用の特別なテンプレートとして扱われるため、HTMLサイトのように単純にファイル名を変更してイントロページを前に配置することはできません。
front-page.phpをメインページとして残したい場合は、イントロ用の固定ページを作成し、そこから5秒後にfront-page.phpへ移動させる構成がおすすめです。
テンプレート階層を無理に変更するのではなく、WordPressの仕組みに合わせて固定ページやリダイレクトを利用することで、HTMLサイトと同じようなイントロ演出を安全に実現できます。

コメント