この実装、面倒なら代行します
SEO的観点からも構造的観点からも、カスタムタクソノミー(カスタム分類)とカスタム投稿タイプのスラッグは同じであるべきです。
しかし、WordPressの場合、カスタム投稿タイプを登録しても自動でカスタムタクソノミーを登録してくれません。つまり別物として別途定義しないといけないんですよね。無論、同スラッグにはなりえない。
しかたないのでカスタムタクソノミー(カスタム分類)とカスタム投稿タイプを別の名称で登録するのですが、ここで問題発生です。
例)カスタム投稿タイプ:blog、カスタムタクソノミー:blog_cat、ターム:term1 の場合
何もしなければblogのアーカイブページは
https://100webdesign.jp/blog/
になります。
いっぽう記事ページは
https://100webdesign.jp/blog_cat/term1/postname
になってしまいます。
見て分かる通り、記事ページがカスタム投稿タイプの下層ページにはなっていません。
構造としてももちろんおかしいし、SEO的にもNOT GOODです。
そこで今回は、カスタムタクソノミー(カスタム分類)の登録において、slugを指定してカスタム投稿タイプと同じにする方法のご紹介。
テーマのfunctions.phpに下記を記述します。
/* カスタム投稿タイプ追加 */ register_post_type( 'blog', /* post-type */ //省略します。 ); /* カスタムタクソノミー カテゴリ追加 */ register_taxonomy('blog_cat','blog', array( //省略します。 'rewrite' => array( 'slug' => 'blog','with_front' => true,'hierarchical' => true) ));
11行目、
'slug' => 'blog'
ここですココ。
これで、カスタムタクソノミー(カスタム分類)のスラッグをカスタム投稿タイプと同じにできます。
その結果はこうなります。
アーカイブページ
https://100webdesign.jp/blog/
記事ページ
https://100webdesign.jp/blog/term1/postname
やりました!これが正しい構造です!
※ なお、これが通用するのはプラグイン「Custom Post Type Permalinks」をインストールしていて、
当該カスタム投稿タイプのパーマリンクを
/%blog_cat%/%post_id(とかpostname)%/
に設定している場合のお話です。
カテゴリ分けしない場合はこの限りではありません。
※ Custom Post Type Permalinksは
どうしてもインストールしておきたいプラグイン10選
でご紹介しておりますのでそちらも参照してください。
現在あなたが利用されているWordPressテーマを活かしたまま、このページの事例を解決できるWordPressテーマを、子テーマとして購入できます。
この子テーマを有効化するだけで、現在お使いのデザインテーマにこの事例解決の機能が自動付与されます。
デザインが入っていないため、一般より格段に低い価格(事例の難易度により200円~1.3万円)です。
※ テーマは買い切りです
※ 自由に改変してお使いいただいて構いません
※ すでに子テーマでサイト運用されている方は、当該子テーマをマージしてください
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!
100ウェブで手がけた制作・開発案件を一部、ご紹介。
クライアントからご相談いただいた内容とその実装におけるポイント、工期、予算について確認いただけます。
【テレワーク実施中 につきお電話転送中】
コール中1秒程度無音状態になりますがそのままお待ちください。
受付時間
平日 10:00~18:00
メールでのお問い合わせでも
1営業日以内にご連絡いたします。