event
というカスタム投稿タイプ(CPT)があります。すべてのイベントには、meta_key
というevent_date
が関連付けられています。
単一のイベントを表示するときに、空のevent_date
を持つイベントがすべてのイベントのリストおよび前の/次のイベントナビゲーションに表示されないようにする必要があります。また、event_date
meta_keyでイベントを注文したいと思います。
私は、event_date
が空のイベントを除外し、pre_get_posts
フックにフックすることで、イベントの一覧全体でそれらを正しく順序付けることができました。
プラグインなしでprev_post_link
およびnext_post_link
関数にフックしてmeta_key
select条件およびmeta_key
order条件を指定することは可能ですか?それのためのフックはありますか?
[P. note]: Ambrosite Next/Previous Post Link Plus プラグインも使ってみました。 meta_keyでイベントを並べる方法を見つけました。ただし、event_date
meta_valueが空のイベントは、単一のイベントを表示したときにprev/nextナビゲーションに表示されたままです。
プラグインの前にWPをフックすることは不可能だと思います。なぜならそれはそれ自身のSQLを構築すると思うからです。除外するすべてのイベントIDのリストと共にex_posts
を使用できますが、それはdbに対する追加の照会を意味します。
ありがとう、ダーシャ
結局、 Ambrosite Next/Previous Post Link Plusプラグイン を使ってしまいました。
空のevent_date
メタキーについて - メタキーの値が正しくないと投稿が保存されないようにコードを追加しました。
この記事を見てください。
prevとnext_post_linkは最終的に get_adjacent_post 関数を呼び出してdbに問い合わせます。これには$ join $ whereと$ sort varsがあります。