这很有道理,但有点倒退。我认为,执行从类别中“排除”帖子的查询最初是获取所有类别(这可能返回类别ID 1、2、5、7、11、13、15、16和23),然后检查“exclude\\u category”参数(“11和13和15”),并运行查询以获取属于类别1、2、5、7、16和23的所有帖子(跳过11、13和23)。因此,从技术上讲,返回的结果确实是正确的。
因此,您可以编写一个类似于我在下面粘贴的函数:
function prev_next_dont_include( $ids ) {
foreach ( get_categories() as $category ) : // loop thru all WP cats
if ( !in_array( $category->cat_ID, $ids ) ) : // check if cat id is in $ids
$categories[] = $category->cat_ID; // build list of real excluded ids
endif;
endforeach;
return implode( \' and \', $categories ); // "1 and 2 and 5 and 7 and 16 and 23"
}
现在可以这样使用:
previous_post_link(\'%link\', __( \'<span class="meta-nav">←</span> Previous Article\', \'twentyeleven\' ), false, prev_next_dont_include( array( 11, 12, 15 ) ) );
希望这能帮助一些人,因为它确实救了我。