你可以用不同的方式来解决这个问题。最简单的解决方案可能是使用“排除类别”(第二个参数),例如排除类别的职位与任期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