Tax_Query 不适用于 WP_Query

Posted

技术标签:

【中文标题】Tax_Query 不适用于 WP_Query【英文标题】:Tax_Query not working with WP_Query 【发布时间】:2013-01-20 12:12:55 【问题描述】:

我一直在努力让 tax_query 在我的 WP_Query 中工作。代码如下:

$nextSundayTalkArgs = array(  
        'post_type' => 'talk',  
    'posts_per_page' => 1,  
    'tax_query' => array(  
        array(  
            'taxonomy' => 'talk-type',  
            'field' => 'slug',  
            'terms' => 'sunday-talk'  
        )  
    )  
);  
$nextSundayTalkQuery = new WP_Query( $nextSundayTalkArgs );

肯定有帖子类型为“talk”的帖子——如果我删除 tax_query 部分,正确的帖子就会正常显示。有 5 次谈话使用正确的分类术语“周日谈话”(如果我尝试使用 ID 而不是 slug,它也不起作用)。

奇怪的是,如果我将帖子类型更改为“帖子”并将分类法更改为“类别”,并省略“字段”和“术语”部分,它会返回我唯一没有任何术语的帖子全部。

在我发疯之前,非常感谢任何帮助。

【问题讨论】:

如下所示,我添加了以下行:<?php echo $GLOBALS['nextSundayTalkQuery']->request; ?> 这将返回:SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND 0 = 1 AND wp_posts.post_type = 'talk' AND (wp_posts.post_status = 'publish' OR wp_posts.post_author = 1 AND wp_posts.post_status = 'private') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 1 我怀疑“1=1 AND 0=1”可能是个问题,但如果是这样,我不确定这是指什么或导致它的原因。 酷 - 我想知道这是否与分类学被命名为谈话类型有关,所以有冲突 - 检查你是否不应该使用下划线,也许?例如talk_type 额外的帮助 - 检查特定的 Wordpress stackexchange,特别是尝试这个链接,它提供了一个很好的分类查询示例:wordpress.stackexchange.com/questions/49185/…在那里发布你的问题,它可能会得到更好的见解!跨度> 谢谢 - 我去看看。我以前看过该链接,但我似乎正确地进行了查询。不幸的是,将分类法更改为“talktype”并没有帮助! 【参考方案1】:

最终在 Wordpress Stackexchange 的帮助下找到了答案。仍然不能 100% 确定我做错了什么,但我的函数布局和我在 index.php 中使用的后循环似乎都是一个问题。

对于遇到此问题并感兴趣的任何人:

https://wordpress.stackexchange.com/questions/84607/custom-taxonomy-and-tax-query

【讨论】:

【参考方案2】:

我不确定您的答案,但我会首先尝试找出您的代码生成的数据库查询。

https://wordpress.stackexchange.com/questions/4809/how-to-display-sql-query-that-ran-in-query

这是调试查询的各种方法的链接。当您看到它的作用时,它有很大帮助,可以在 phpmyadmin 等上运行它。

【讨论】:

谢谢 - 我已将此添加为评论。对格式不佳表示歉意,对于 Stack Overflow 来说还是新手!

以上是关于Tax_Query 不适用于 WP_Query的主要内容,如果未能解决你的问题,请参考以下文章

php tax_query - WordPress

php tax_query - WordPress

从 WooCommerce 相关产品自定义 WP 查询中删除缺货产品

Wordpress:tax_query 使用 OR 运算符的多个术语

Tensorflow - 多 GPU 不适用于模型(输入),也不适用于计算梯度

为啥 UITableViewAutomaticDimension 不适用于 sectionFooterHeight?