ブログ

BLOG

カスタムタクソノミーのパーマリンク変更でterm_link()とadd_rewrite_rule()の役割について

こんにちは!奥田です!

WordPressでカスタムタクソノミーのパーマリンクを変更したいなと思っていろいろ触ってみてたんですけど、どうもうまくいかない。

もしかしたら、ちょっといろいろ勘違いをしているかもしれませんよ。

カスタムタクソノミーのパーマリンクの前提

カスタム投稿を作って、そのカスタム投稿用のカスタムタクソノミーも作ったとき、カスタム投稿用のTermの一覧記事を表示させると、デフォルトだとWordPressのルート直下にいきなりTaxonomyTermコンビが来て、おっとなるときあると思うんですよね。

カスタム投稿の記事のURL

https://ocws.jp/{custom-post-name}/{custom-post-slug}/

あるタームのアーカイブページ

https://ocws.jp/{taxomomy}/{term}/

こうしたい人も多いはず。

https://ocws.jp/{custom-post-name}/{taxomomy}/{term}/

term_link()とadd_rewrite_rule()を使う

これを解決するにはterm_link()add_rewrite_rule()を使います。

term_link()
タームのリンクを変更できる関数。

add_rewrite_rule()
リダイレクトのルールを追加できる関数。

僕が調べた中ですと、add_rewrite_rule()でルール書き換えとけば、カスタム投稿のslugが入ったパーマリンクにできるよーってのが結構ありましたが、それだけですと、 get_the_term_list()でリストを生成している場合はうまくリンクが生成されないかと思います。

解決法としては、やはり両方書くってことになります。

term_link()とadd_rewrite_rule()の役割

書き方は他のところでたくさん出ていると思うので、一旦割愛(もしかしたらあとで追加するかも)。ということでまとめです。

とりあえず、カスタム投稿の配下にカスタムタクソノミーの一覧を持ってきたい場合は、term_link()add_rewrite_rule()の両方で設定することが必要になります。

https://ocws.jp/{custom-post-name}/{taxomomy}/{term}/

それぞれの役割と書く内容については下記をご参考に!

add_rewrite_rule()
<カスタムタクソノミーのリライトルールを追加。>
(AというURLの場合はBというURLにリダイレクトしてくださいってやつです。)

term_link()
<表示されるタームのリンクを変更。>
(AというURLの場合はBというURLに改変して表示してくださいってやつです)

お問い合わせ・ご相談CONTACT

オクワスでは、Webを通して魅力を最大限に伝えるお手伝いをしております。ホームページ制作やWebからの集客などでのお困りごと、Web開発で人手が足りないなどございましたら一度お気軽にご連絡ください。

お問い合わせフォームまたは𝕏のDMからご相談お受けしております。

お問い合わせフォームへDMからご連絡ください
© 2015 - 2024 Okuda Kouki