実際に動作させてみた訳ではないのですが、どのようにして「隣接エントリーへのリンクを表示」するかを調べてみました。例えば「次の投稿」に相当するテンプレートタグ next_post_link は、WordPress-3.8.1-ja 本体のファイル wp-includes/link-template.php が定義していました。
next_post_link は関数 get_next_post_link を呼び出しており、get_next_post_link は 関数 get_adjacent_post_link を呼び出します。さらに get_adjacent_post_link は関数 get_adjacent_post を呼び出します。(何れも同じphpファイルにあります。)
関数 get_adjacent_post が実行している内容は、ざっくりとしか理解できていないので間違っているかもしれませんが、次のような内容です。
- 関数
get_post で現在の投稿を取得。
- その投稿のタイムスタンプを取り出す。
- 次の投稿なら「そのタイムスタンプより新しい投稿を古い順」、前の投稿なら「そのタイムスタンプより古い投稿を新しい順」に並べるソート条件を用意する。
- 用意したソート条件で投稿を検索して、結果の先頭だけを取得する。
そして、この get_adjacent_post にはフィルターが3つ用意されています。SQL文を組み立てる話になってしまうので、わかりやすく説明できないのですが、検索条件(2種類)とソート条件をそのフィルターで変更できるようです。「次の投稿」の場合、下記の3つです。
get_next_post_join … 投稿を検索するSQL文の join 句を変更可能
get_next_post_where … 同、where 句を変更可能
get_next_post_sort … 同、ソート用の order by 句を変更可能
shogo_misakiさんはカスタムフィールドを条件に追加なさりたいので、フィルター get_next_post_join もしくは get_next_post_where を使えばよいのではないでしょうか。特にjoin句の部分は、タグ(taxonomy)によって投稿を検索するのに使われているようですので、カスタムフィールドにも当てはめやすいのではないかと思います。
なお、これらのフィルターの説明が下記リンク先にありました。
WordPress hook directory
get_{$adjacent}_post_join
get_{$adjacent}_post_where