帖子对象中的Wordpress高级自定义字段元查询过滤器

时间:2018-07-04 07:53:36

标签: wordpress

对于事件发布类型,我具有以下JSON格式

JSON Format
Event Channel Fields
Event Details Fields

我正在尝试过滤所有即将发生的事件(即将来的日期),并将“ Michael Kay”作为event_channel。

以下是我的自定义查询,无法正常工作。问题出在event_channel上,因为它是“渠道”自定义帖子的发布对象。元查询的第二部分不起作用。

<pre>
$today_r = date_i18n('j M Y g:i A');
$today = strtotime($today_r);  
    $upcoming_events = new WP_QUERY(array(
                        'post_type'         =>'event',          
                        'post_status'       => 'publish', 
                        'order'             => 'ASC',
                        'orderby'           => 'meta_value',
                        'meta_key'          => 'event_start_date',
                        'meta_value'        => $today,
                        'meta_compare'      => '>=',
                        'meta_query'    => array(
                            'relation'      => 'AND',
                            array(
                                'key'       => 'event_start_date',
                                'value'     => $today,
                                'compare'   => '>=',
                            ),
                            array(
                                'relation'      => 'AND',
                                'key'       => 'event_channel',
                                    array(
                                        'key'       => 'post_title',
                                        'value'     => 'Michael Kay',
                                        'compare'   => 'LIKE',                                    
                                    ),
                            )
                        ),
                        "posts_per_page" => 6     
                    ));

</pre>

1 个答案:

答案 0 :(得分:0)

您需要调整$ args数组。您不应将post_title作为元密钥传递。 使用这个:

$upcoming_events = new WP_QUERY(array(
                        'post_type'         =>'event',          
                        'post_status'       => 'publish', 
                        'order'             => 'ASC',
                        'orderby'           => 'meta_value',
                        'meta_key'          => 'event_start_date',
                        'meta_value'        => $today,
                        'meta_compare'      => '>=',
                        's' => 'Michael Kay',
                        "posts_per_page" => 6     
                    ));

更新: 这是按ACF子字段对其进行过滤的查询:

$upcoming_events = new WP_QUERY(array(
                        'post_type'         =>'event',          
                        'post_status'       => 'publish', 
                        'order'             => 'ASC',
                        'orderby'           => 'meta_value',
                        'meta_key'          => 'event_start_date',
                        'meta_value'        => $today,
                        'meta_compare'      => '>=',
                        'meta_query'    => array(
                            array(
                                'key'       => 'event_channel_0_post_title',
                                'value'     => 'Michael Kay',
                                'compare'   => 'LIKE',
                            ),
                           )));

要知道您的event_channel_0_post_title键的确切正确名称,请转到PHPMYADMIN-> wp_postmeta表,然后在其中搜索“ Michael Kay”。如果event_channel_0_post_title不正确,您将在此处看到正确的名称。