如何使用WP标题解决更复杂的wp_query元查询

时间:2015-11-18 15:19:28

标签: mysql wordpress wp-query

如果我使用的是SQL语句,那就是它的样子:

select * from courses where active = 1 AND (title = $string OR description = $string)

'课程'是自定义帖子类型

'有源'是使用ACF创建的自定义字段

'描述'是使用ACF创建的自定义字段

'标题'是帖子的标准WP标题

这是我到目前为止所做的:

$args_courses = array(
                'post_type' => 'courses',
                'posts_per_page' => 9999,
                'meta_query' => array(
                        array(
                            'key' => 'active',
                            'value' => 1,
                            'compare' => '='
                        ),  
                        'relation' => 'AND',
                        array(
                            'key' => 'description',
                            'value' => $string,
                            'compare' => '='
                        ),
                        'relation' => 'OR',
                        array(
                            'key' => 'title',
                            'value' => $string,
                            'compare' => '='    
                        )
                ),
            );

似乎我无法通过meta_query访问WP标题,但无法弄清楚如何转换我的查询以便活跃'仍然是第一个要检查的专栏。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

默认的WP_Query功能不支持您尝试执行的操作,但您可以按照WordPress Stackexchange站点的以下答案中的说明对其进行扩展。请注意,您可能需要针对特定​​用例进一步更改它。

  

https://wordpress.stackexchange.com/questions/178484/wp-query-args-title-or-meta-value

关于当前查询的一些注释。

  • relation只能在meta_query中使用一次。 WordPress使用数组进行分组,并且在您的示例中不会使用“AND”或“OR”。
  • 看起来你想要“所有”帖子,而不是真正的9999帖子,所以你应该使用-1来获取一个结果集中的所有内容。