我相信这在任何情况下都应该有效——无论你是否在循环中。(在小部件中,您很可能不在循环中)
请注意,在循环之外,这将在单个页面或帖子上非常有效,但可能不会在其他类型的页面上显示所需的帖子。(主页、分类页等)在这些情况下,您可能希望添加一个条件,使用WordPress\'is_singular 作用
无论如何,下面是您的代码的修订版本:
function filter_query( $query ) {
if(in_the_loop()) $post_id = get_the_ID();
else $post_id = get_queried_object_id();
if($post_id) {
if(empty($query[\'post__not_in\'])) $query[\'post__not_in\'] = array(); // that way if someone else already has stuff in $query[\'post__not_in\'], we won\'t override it but append to it...
$query[\'post__not_in\'][] = $post_id;
}
return $query;
}
add_filter(\'wpc_query\', \'filter_query\', 1 );
希望这有帮助!