我正在尝试覆盖客户端上的默认查询single.php
页面,似乎根本不会影响查询,尽管看起来做得很正确(估计不会!)。
我只想从查询中删除一类帖子。它的slug是“homepage item”,其类别是10(当我将鼠标悬停在类别仪表板列表中的名称上时,我看到(部分):“…分类法=类别&标记ID=10…”
我只是在单曲的顶部插入了这个。php:
<?php
$customArgs = array(
\'category__not_in\' => \'10\'
);
$custom_query = new WP_Query( $customArgs );
?>
。。。我在此处添加了自定义查询的变量名:
<?php
if ( $custom_query->have_posts() ) {
$count = 0;
while ( $custom_query->have_posts() ) {
$custom_query->the_post();
$count++;
?>
但无论我做什么,我的查询似乎都没有受到影响——相同的内容出现了。我甚至试过换衣服
$customArgs
删除几乎所有内容,但看不到任何更改。
我肯定我错过了一些明显的东西,但是。。。可能是什么?
希望有人能帮忙!亚当
最合适的回答,由SO网友:Marc Wiest 整理而成
你可以参与一个行动。它叫pre_get_posts
它允许您在运行查询之前更改查询。
此代码应放在函数中。php文件。
function my_exclude_category( $query )
{
if ( $query->is_singular(\'post\') && $query->is_main_query() ) {
$query->set( \'cat\', \'-10\' );
}
}
add_action( \'pre_get_posts\', \'my_exclude_category\' );
Please note. 您的方法不起作用,因为您正试图在主题模板文件中创建一个新查询,该文件应用于显示单发帖子。此外,创建新的WP\\U查询不会影响主查询。这就是
pre_get_posts
行动挂钩用于。用于显示帖子列表的模板文件如下:。
archive.php
请参阅
template hierarchy 有关详细信息,请参阅文档。