同时使用元查询和税务查询

时间:2016-10-17 作者:MrFox

我想同时使用meta_query 以及tax_query, 但是使用下面的方法,我可以得到meta_query. 我做错了什么?

$wp_query = new WP_Query( array(
            \'post_type\'     => \'whatson\',
            \'post_status\'   => \'publish\',
            \'meta_query\'    => array(

                array(
                    \'key\'     => \'sc_related_venues_title\',
                    \'value\'   => $location,
                    \'compare\' => \'LIKE\'  ,
                    \'field\'   => \'title\',
                ),
            ),

             \'tax_query\' => array(
                array(
                    \'taxonomy\'  => \'eventtype\',
                    \'terms\'     => $event_type,
                    \'field\'     => \'slug\',
                    \'compare\'   => \'LIKE\'         
                ),
           ),

            \'posts_per_page\' => \'10\',
            \'paged\' => $paged
        ) );

4 个回复
SO网友:MrFox

你相信吗,我一发布这篇文章,就想起去年我问了一个问题。我查看了一下,并对我的新查询进行了如下调整:

$category_slug = filter_input(
    INPUT_GET,
    \'eventtype\',
    FILTER_SANITIZE_STRING
);

$cat_query = [];
if( $event_type ){
    $cat_query = [
        [
            \'taxonomy\' => \'eventtype\',
            \'field\'    => \'slug\',
            \'terms\'    => $event_type

        ]
    ];
}

$paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
$args = array(
    \'post_type\'      => array(\'whatson\'),
    \'post_status\'  => \'publish\',
    \'tax_query\'  => $cat_query,
    \'meta_query\' => array(

        array(
            \'key\' => \'sc_related_venues_title\',
            \'value\' => $location,
            \'compare\' => \'LIKE\'  ,
            \'field\'     => \'title\',
        ),
    ),
    \'orderby\'        => \'date\',
    \'order\'          => \'desc\',
    \'posts_per_page\' => \'10\',
    \'paged\'          => $paged,
);
$wp_query = new WP_Query( $args);

SO网友:Khorshed Alam

删除后重试\'compare\' => \'LIKE\' 从…起tax_query.

tax_query 没有参数compare 它可用于meta_query

\'tax_query\' => array(
   array(
      \'taxonomy\'  => \'eventtype\',
      \'terms\'     => $event_type,
      \'field\'     => \'slug\',
   )
),

SO网友:bagpipper

因为您已经在使用slug来比较您的分类法。尝试使用

$wp_query = new WP_Query( array(
        \'post_type\'     => \'whatson\',
        \'post_status\'   => \'publish\',
        \'eventtype\'     => $event_type,
        \'meta_query\'    => array(
            array(
                \'key\'     => \'sc_related_venues_title\',
                \'value\'   => $location,
                \'compare\' => \'LIKE\'  ,
                \'field\'   => \'title\',
            ),
        ),
        \'posts_per_page\' => \'10\',
        \'paged\' => $paged
    ) );

SO网友:Hardik Amipara

尝试使用belwo代码进行元查询和tax\\u查询。

<?php
$category_object=get_queried_object();
$term_id = $category_object->term_id;
$name = $category_object->name;
$description = $category_object->description;

$wp_query = new WP_Query( array(
    \'post_type\'     => \'whatson\',
    \'post_status\'   => \'publish\',
    \'meta_query\' => array(
                    \'relation\' => \'AND\',
                    array(
                            \'key\' => \'sc_related_venues_title\',
                            \'value\' => $location,
                            \'compare\' => \'LIKE\',
                            \'field\'   => \'title\',
                    ),
                ),
    \'tax_query\'  => array(
            array(
                \'taxonomy\' => \'eventtype\',
                \'field\' => \'id\',
                \'terms\' => $term_id
            )
        ),
    \'posts_per_page\' => \'10\',
    \'paged\' => $paged
) );
?>

相关推荐