WordPress 特定のカスタムフィールドに値がある記事だけで「前へ」「次へ」を実装

「このカスタムフィールドに値がある記事だけで『前の記事へ』『次の記事へ』のページ送りを実装してください」と言われたけど、思ったより大変だったのでメモ。

通常、詳細記事のページネーションは”previous_post_link()”と”next_post_link()”を使えば簡単に実装できるんだけど、この関数は残念ながらカスタムフィールドの有無の判定とかはできないので、がんばってphpを書いたのであった。







functions.phpに以下を記述

だいたいコメントに書いてある通りの処理です。

要は、

  • まず’hoge’というカスタムフィールドに値がある記事のみループさせ、
  • 配列’$array_has_thumb’に記事IDを格納。
  • その配列から、今の記事IDの前後の記事IDを取得して、
  • 記事IDが取得できていたらページネーションを表示

という流れです。前後の記事IDを取得する部分はもうちょい綺麗に書けそう…あとは、meta_keyやpost_typeの値を引数で渡してやると汎用性高まりますね。まぁそれは気が向いたら挑戦してみてください。🤗

使うときはテンプレートに

と書くと表示されます。

現場からは以上です。

シェアする

フォローする