投稿日 : 2019年3月26日

【WordPress】オリジナルテーマ作成中にheader.phpをget_headerで読み込めない現象

WordPress|プログラミング

こんにちは、yutaです。

タイトル通りですが、WordPressでオリジナルテーマを作成している時に、get_header();でheader.phpが読み込めない現象に陥り苦戦しました。

問題点は、index.phpではget_header();で正常に読み込めているのに、その他のページではget_header();で読み込めないということです。

とりあえず、解決したのでその方法をシェアします!

1.「固定ページのテンプレート」という形でページを作成することでget_header();が効くようになる。
2.wp-adminにログインして、固定ページの「新規追加」をする。
3.固定ページのリンクを貼る。
4.僕のコード



1.「固定ページのテンプレート」という形でページを作成することでget_header();が効くようになる。

先ほど話したように、index.php以外ではget_header();が効かなくなる現象が起きました。ページを表示しても真っ白で何も出ないといった感じです。

色々調べているうちに、現在作成しているページに以下のコメントを記述すると、「固定ページのオリジナルテンプレート」としてWordPressが認識するようになり、何故かこの場合だとget_header();を読み込んでくれることが分かりました。

/*
Template Name: 任意の名前(例えば、”お問い合わせ”など。)
*/
<?php get_header(); ?>

このコメントを記述して、あとは通常通りにページをデザインします。

2.wp-adminにログインして、固定ページの「新規追加」をする。

ページが出来上がったら、WordPressにログインして固定ページの「新規追加」で新しい固定ページを作成します。

この時に、編集画面右の「ページ属性」の「テンプレート」を見ると先ほど作成したページがテンプレートとして選択できるようになっているので選択します。

編集画面では、とりあえずタイトルだけ付けて公開します。すると、先ほど作成したページが公開されるようになります。

3.固定ページのリンクを貼る。

あとは、オリジナルテンプレートのindex.phpになどにリンクを貼ればOKですね。

リンクの貼り方は、「<a href=“ここにURLを記載”>任意の名前</a>」を使いますが、“ここにURLを記載”部分に以下を記述します。

<?php echo get_page_link(該当ページのページID); ?>

ページIDは、Google Chromeで固定ページ一覧を開き、ページIDを確認したい固定ページのタイトル上にマウスカーソルを持って行くと画面下に”post=ページID”の形式でページIDが記述されているのでそこで確認できます。

画像には表示されていませんが、マウスカーソルを”お問い合わせ”上に乗せています。

ちなみに、貼り付けたリンクをクリックすると以下のように固定ページが表示されました。

4.僕のコード

僕はHow to系のサイトで完全なコードが載ってなくて、結局どうすれいいの?という経験が多いのでそういう事態を避けるために自分のコードを載せておきますね。

以下が、get_header();を効かせたいphpファイル

以下が、↑のページへのリンクを貼っているheader.php

今回は以上となります。質問等あれば、分かる範囲でお答えしますのでコメントしてください。

ブログランキングに参加しています。この記事が参考になったという方は、下のバナーを押していただけると嬉しいです。では、また!

お問い合わせ

E-mail : yutric9☆gmail.com
☆を@に置き換えて送信してください。
仕事のご依頼や、その他の質問など何でもお気軽にお問い合わせください。

準備中