Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php WordPress:使用meta_查询对多个帖子类型进行单一查询?_Php_Wordpress - Fatal编程技术网

Php WordPress:使用meta_查询对多个帖子类型进行单一查询?

Php WordPress:使用meta_查询对多个帖子类型进行单一查询?,php,wordpress,Php,Wordpress,我试图在WordPress中设置一个查询,返回来自不同帖子类型的组合结果,并使用适用于每个帖子类型的meta_查询。在本例中,我希望获得具有相应的'related.'$post\u type'的meta\u查询(自定义字段)的标准帖子,以及当前日期之后的事件的自定义帖子类型的帖子。我的查询如下,虽然它似乎正确地获得了标准帖子,但它显示了所有事件,而不仅仅是即将发生的事件: $args = array( 'post_type' => array('post', 'ev

我试图在WordPress中设置一个查询,返回来自不同帖子类型的组合结果,并使用适用于每个帖子类型的meta_查询。在本例中,我希望获得具有相应的
'related.'$post\u type'
meta\u查询
(自定义字段)的标准帖子,以及当前日期之后的
事件的
自定义帖子类型的帖子。我的查询如下,虽然它似乎正确地获得了标准帖子,但它显示了所有事件,而不仅仅是即将发生的事件:

$args = array(
            'post_type' => array('post', 'event'),
            'orderby' => 'date',
            'order' => 'DESC',
            'posts_per_page'    =>  $limit,
            'meta_query' => array(
                'relation' => 'OR',
                array(
                    'key' => 'related_'.$post_type,
                    'value' => $post_id,
                    'compare' => 'LIKE',
                ),
                array(
                    'key'     => 'event_start_date',
                    'type'    => 'DATE',
                    'value'   => current_time('Ymd'),
                    'compare' => '>=',
                ),
            )
        );

这是否可以在单个查询中实现,或者我需要使用相应的meta_查询对post和events进行单独的查询,并合并生成的数组?或者我可以更好地组织查询,使每个meta_查询与其各自的帖子类型对齐吗?感谢您的帮助。

您可以查询多种帖子类型:

post_type (string / array) - use post types. Retrieves posts by Post Types, default value is 'post'. If 'tax_query' is set for a query, the default value becomes 'any';
编辑:我觉得您应该使用
YYYY-MM-DD
mysql日期格式,但您是对的-它确实接受PHP日期格式,如
Ymd
(以及
'mysql'
'timestamp'

查询的结构似乎很好-我唯一觉得奇怪的是“related_uu”的值。$post_u类型自定义字段:

'key' => 'related_'.$post_type,
'value' => $post_id,
post_id实际上是自定义字段的值吗?邮递表由以下部分组成:

meta_id
post_id
meta_key
meta_value

post\u id通常也不是meta\u值?

您可以查询多种post类型:

post_type (string / array) - use post types. Retrieves posts by Post Types, default value is 'post'. If 'tax_query' is set for a query, the default value becomes 'any';
编辑:我觉得您应该使用
YYYY-MM-DD
mysql日期格式,但您是对的-它确实接受PHP日期格式,如
Ymd
(以及
'mysql'
'timestamp'

查询的结构似乎很好-我唯一觉得奇怪的是“related_uu”的值。$post_u类型自定义字段:

'key' => 'related_'.$post_type,
'value' => $post_id,
post_id实际上是自定义字段的值吗?邮递表由以下部分组成:

meta_id
post_id
meta_key
meta_value

post\u id通常也不是meta\u值?

我也有同样的问题。将
meta\u query
参数应用于具有多个
post\u类型的查询时,
meta\u query
参数将应用于所有post类型,因此,它只返回包含所查询的元字段的post

例如,使用以下
meta\u查询
参数执行
wp\u查询时:

'meta_query' => array(
   array(
      'key' => 'agenda_date',
      'value' => date('Ymd'),
      'compare' => '>=',
   ),
)
仅返回包含元字段“议程日期”的
post\u类型的帖子。所有其他帖子都被忽略

如果我删除
meta_query
参数,所有参数都可以正常工作,并且我可以毫无问题地查询多个帖子类型(
'post_type'=>'agenda,post'

摆弄
关系
设置和模拟伪
元查询
参数似乎不起作用,因此唯一的解决方案是劫持SQL查询本身并修改查询的
连接
WHERE
语句


但是太糟糕了。

我也有同样的问题。将
meta\u query
参数应用于具有多个
post\u类型的查询时,
meta\u query
参数将应用于所有post类型,因此,它只返回包含所查询的元字段的post

例如,使用以下
meta\u查询
参数执行
wp\u查询时:

'meta_query' => array(
   array(
      'key' => 'agenda_date',
      'value' => date('Ymd'),
      'compare' => '>=',
   ),
)
仅返回包含元字段“议程日期”的
post\u类型的帖子。所有其他帖子都被忽略

如果我删除
meta_query
参数,所有参数都可以正常工作,并且我可以毫无问题地查询多个帖子类型(
'post_type'=>'agenda,post'

摆弄
关系
设置和模拟伪
元查询
参数似乎不起作用,因此唯一的解决方案是劫持SQL查询本身并修改查询的
连接
WHERE
语句


但是太糟糕了。

感谢您的回复-有趣的是,我对“实际事件”页面使用了相同的meta_查询,即仅显示当前日期之后的事件,并且效果良好;这里的问题似乎是将它与查询其他帖子结合使用(?)对不起-看起来您使用的当前时间()是正确的。所以对我来说,唯一突出的是你使用post_id作为meta_值——我编辑了我的答案。感谢你的回答——有趣的是,我对实际事件页面使用了相同的meta_查询,即只显示当前日期之后的事件,而且效果很好;这里的问题似乎是将它与查询其他帖子结合使用(?)对不起-看起来您使用的当前时间()是正确的。所以对我来说唯一突出的是你使用post_id作为meta_值-我已经编辑了我的答案。