你可以用不同的方式來解決這個問題。最簡單的解決方案可能是使用「排除類別」(第二個參數),例如排除類別的職位與任期ID 5:
get_adjacent_post(false, '5', false)
另一種選擇是使用get_previous_post_where
和get_next_post_where
過濾器來修改SQL查詢。
你可以在選項表後一組ID被排除存儲,這裏有一個例子,你如何可以排除所有置頂文章:
add_filter('get_previous_post_where', 'so16495117_mod_adjacent');
add_filter('get_next_post_where', 'so16495117_mod_adjacent');
function so16495117_mod_adjacent($where) {
return $where . ' AND p.ID NOT IN (' . implode(',', get_option('sticky_posts')) . ')';
}
或者,正如您在您的問與答建議,你可以過濾發佈具有特定後期元鍵的帖子,例如my_field
:
add_filter('get_previous_post_where', 'so16495117_mod_adjacent_bis');
add_filter('get_next_post_where', 'so16495117_mod_adjacent_bis');
function so16495117_mod_adjacent_bis($where) {
global $wpdb;
return $where . " AND p.ID NOT IN (SELECT post_id FROM $wpdb->postmeta WHERE ($wpdb->postmeta.post_id = p.ID) AND $wpdb->postmeta.meta_key = 'my_field')";
}
謝謝!第一個選項確實很好! – Alex 2013-05-12 18:35:42