Webサイトやブログの運営について

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

Wordpress

Share

© NOTICED 2024