构建自定义WP_Query时遇到问题

时间:2018-06-12 作者:Adam Abrams

我正在尝试覆盖客户端上的默认查询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 删除几乎所有内容,但看不到任何更改。

我肯定我错过了一些明显的东西,但是。。。可能是什么?

希望有人能帮忙!亚当

1 个回复
最合适的回答,由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 有关详细信息,请参阅文档。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post