どうも、個人ビジネス部PHP専門のコウイチです。

この記事では、WordPressのカテゴリページのパーマリンクについてしまう、"category"という文字を取り除く方法について、解説します。

 

「パーマリンク」について知りたい方は、以下の記事をご覧ください。

 

【WordPress】最初にやっておくべきパーマリンクの設定方法を解説

[blogcard url="https://businessdepartment.jp/wordpress/permalink/"]

 

WordPressのカテゴリページのパーマリンクはどうなっていますか?

 

たとえば、WordPressというカテゴリページを表示したとします。

 

その時のURLは・・・

https://example.com/category/wordpress/

 

コウイチコウイチ

その"category"ってやつ、邪魔・・・

 

そう、勝手に"category"という文字列がURLに付いてきます。

 

ここをこだわって、

https://example.com/wordpress/

というURLでアクセスできるようにしようじゃないか、というのが今回の課題です。

 

やりたいこと

何をやりたいのか、整理しますと

https://example.com/wordpress/

というページを表示したとき・・・

  • WordPressというカテゴリが存在すれば、そのカテゴリページを
  • 存在しない場合、wordpressというパーマリンクの記事が存在すれば、その記事を

表示するようにしたい。

 

ということです。

これを実現するには、functions.phpにコードを追加する必要があります。

【ちなみに】wordpressが小文字なのはなぜ?

※当ブログの場合、カテゴリ名は"WordPress"という、大文字小文字を混ぜた名前にしていますが、"wordpress"というスラッグを設定しています。なぜなら、URLに使用する英字は小文字のみで構成するのが一般的だからです。

functions.phpに追加する内容

それでは、functions.phpに追加する内容について、説明してきます。

今回、functions.phpに追加するのは以下のコードです。

コピペする場合は、コピペする前のfunctions.phpをバックアップして、期待した動作をしなければ、ファイルを元に戻してくださいね。

コードの解説

今掲載した、functions.phpに追加するコードの解説をしていきます。

カテゴリページへのリンクの"category"を除去する。

まず、各カテゴリページへのリンクってありますよね?

これ、画像ではもう処置を施しているのでURLに"category"がありませんが、本来ここは、

https://businessdepartment.jp/category/wordpress/

と表示されているはずです。

これを

https://businessdepartment.jp/wordpress/

と表示されたいわけです。

これを実現するには、「user_trailingslashit」というフィルタをフックして、URLから"/category/"という文字列を取り除きます。

今表示しようとしているURLが、カテゴリページかどうか判定

次に、「今表示しようとしているURLが、カテゴリページかどうか判定」する関数を追加します。

この関数は後で使用します。

リライトルールを書き換える。

では、「rewrite_rules_array」というフィルターをフックしてリライトルールを書き換えます。

カテゴリページを表示したい場合に、リライト元のパターンの「category」を削除します。

リライトルールについては

 

WordPressのパーマリンクにスラッシュ「/」を含める方法

[blogcard url="https://businessdepartment.jp/wordpress/perma-link-slash/"]

 

で解説していますので、参考にしてください。

まとめ

以上の内容をfunctions.phpに追加すれば、

https://example.com/[カテゴリ名]

で、そのカテゴリページにアクセスすることができるようになります。

 

シンプルなURL構造は、訪問者が目で見たときにサイトの構成が分かりやすくなるのと、検索エンジンもサイトの構成を把握しやすくなるため、やっておいて損はない仕掛けです。

 

是非、試してみてください。

ではまた。