WordPressのカテゴリートップに固定ページの内容を表示させる方法
WordPressには便利なカテゴリー機能があり、投稿を各カテゴリーに簡単に分類することができます。
また、自動的にカテゴリーページが作成されていて、通常のWordpressテーマだとカテゴリーページにはそのカテゴリーに属した記事一覧が表示されます。
WordPressをブログとして運営するなら、この仕様で問題ないのですが、カテゴリーに属する記事が増えてくると、ただ一覧で表示されるだけでは訪問してくれたユーザーが目的の記事に辿りつきにくくなります。
そこで、カテゴリーのトップページもサイトのトップページの様にしっかりとコンテンツを入れて、そのカテゴリーに適した内容を表示させる方法を考えて見たいと思います。
Sponcerd Link
カテゴリートップをカスタマイズする
カテゴリーページをカスタマイズする方法かいくつかあって、これまではcategory-○○○.phpを作成し、その中にhtmlでコンテンツを入れて表示させていました。
この方法でももちろん問題ないのですが、修正したり追記したりする度にFTPソフトでアップロードしなければいけません。
せっかくWordpressという便利なCMSを使用しているので、FTPを介せず更新ができたら良いなと思い、固定ページの内容をカテゴリーページで取得する方法を選択しました。
カテゴリーのテンプレートを作成する
まずは、カテゴリーのphpテンプレートを作成します。
WordPressのテーマにcategory.phpというファイルがあれば、Wordpressはカテゴリーページを表示する際、このファイルを取得します。
カテゴリーページをカスタマイズするには、category-○○○.phpというファイルを作成しテーマフォルダの中に入れておきます。
○○○の部分に表示したいカテゴリーのスラッグ名を入力して、後述する固定ページのスラッグも同一のものに設定しておきます。
指定した固定ページの内容を取得する
カテゴリーページに限らず、Wordpressのテーマ内で指定した固定ページの内容を表示させるには、以下のコードを記入します。
<?php
$page_info = get_page_by_path(‘○○○’);
$page = get_post($page_info);
echo $page->post_content;
?>
○○○の部分に固定ページのスラッグを入力することで、その固定ページのコンテンツを取得することができます。
前述した様に、このスラッグをカテゴリーのスラッグと合わせておきます。
あとはテーマに合わせて、htmlでコーティングし、cssで見た目を整えれば完成です。
WP No Category Baseをインストールする
ここからは、サイトによっては非推奨なので注意が必要です。
WP No Category Baseというプラグインを利用して、Wordpressのパーマリンク構造を変更してしまいます。
このプラグインは、Wordpressで通常表示されるカテゴリーページのURLについてくる/category/部分を非表示にするプラグインです。
http://sample.com/category/○○○/
http://sample.com/○○○/
としてくれます。
通常カテゴリーページと固定ページや投稿ページのパーマリンクが競合しない様に、自動的に/category/をつけるWordpressの仕様なのですが、No Category Baseはこれを無効にしてしまいます。
そのため、カテゴリーと固定ページのスラッグが同じならカテゴリーページが優先して表示される様になります。
この仕様を利用して、カテゴリートップページに同一URLの固定ページの内容を表示させています。
この方法でサイトを運営して、今のところ大きな問題は起きていませんが、No Category Baseは日本語URLを使用していると、不具合が起きるとのことなので、既存サイトにインストールする場合は、十分に検証してから行なってください。
カテゴリーページにアクセスして表示を確認
ここまでできたら、カテゴリーページにアクセスして、表示を確認して見ましょう。
カテゴリーの一覧が表示されずに、指定した固定ページの内容が表示されれば完成です。
少々強引なやり方ではありますが、スムーズに更新できる方法はこれがベターかなと感じました。
そもそも、Wordpressで生成されるカテゴリーページに、/category/というスラッグが入るのが、URL構造としては不自然です。
仕様上仕方ないとは思うのですが、ユーザー自身がうまく使っていかないといけませんね。
Sponcerd Link