我正在使用pre_get_posts()
允许在任何类别存档上显示所有帖子。这是因为我将提供一个使用同位素的javascript排序和过滤方法。js。任何类别页面都将输出所有帖子,但任何不属于该类别的帖子最初都将被隐藏。
function show_all_cats( $query ) {
if ( !$query->is_main_query() ){
return;
}
if ( is_admin() ){
return;
}
if ( $query->is_archive ) {
$query->set(\'cat\', \'\'); //here is the problem
var_dump($query);
return;
}
return;
}
add_action( \'pre_get_posts\', \'show_all_cats\' );
我试过设置
\'cat\'
到
0
,
null
,
\'\'
和
\'-\' . $currentcategoryid
.它们要么只显示将以其他方式显示的帖子(全部在类别中),要么不显示。
我试过使用query_posts()
这也没用。我还被告知:
操作分类可能需要重新运行元查询处理。
SO网友:Attila
您可以使用过滤器pre_get_posts()
要修改SQL查询,请执行以下操作:
add_filter( \'posts_where\', function ( $where ) {
$where = preg_replace("regex pattern", "", $where);
return $where;
}, 10, 2 );
这是一个有点黑客攻击的解决方案,但应该是可行的。