次と前の記事を同じタグのみに指定する

はじめに

現状、日付順になっている。

そのため、Railsの記事の前に、自分の考えの記事が来ている。

データを登録できるようにした | ki-hi-ro.com

これをRailsの記事に限定したい。

変更前のソースコード

前と次のナビゲーションは以下のように表示させていた。41行目のcomments_template()は、if文の前に持ってきた方がよかった。今後の改修対象だ。

get_adjacent_post

get_adjacent_postは、4つの引数を持つ。

get_adjacent_post() – 前後の記事を取得する

変更前のソースコードでは、以下のように指定していた。第一引数がfalseなので、同じタームの記事に限定して取得していない。タームというのは、雑記ブログというカテゴリーがあったとしたら、雑記ブログのこと。第二引数は空なので、対象外とするタームを指定していない。第三引数は、パラメータの定義のままで、前の記事のprevがtrueで、次の記事のnextがfalse。第四引数は指定していない。

変更後のソースコード

37、38行目に注目していただきたい。get_adjacent_postに渡す引数を変更した。第一引数はfalseからtrueにしたので、同じタームの記事に限定して取得するようになった。第四引数にpost_tagを指定したので、タクソノミーがタグになった。

投稿のタグのスラッグは、tagではなくpost_tagなので、注意が必要だ。管理画面のタグページのURLに、「taxonomy=post_tag」書いてある。

意図した通りの結果になった

例えば、2024年夏の青春18きっぷというタグを持つ以下の記事は、前後の記事が同じタグがついているページになっている。

青春18きっぷ 2024夏 2回目 第二章 亀山到着、奈良方面へ

この記事の前のナビゲーションには、WordPressのタグが付いた記事が表示されている。

今後、WordPressというタグを付けた記事が公開されたら、次の記事のナビゲーションが追加される。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

投稿ID : 24431