具有关系的Wordpress税查询或不起作用

时间:2019-02-02 00:58:23

标签: php wordpress loops

我正在运行一个wordpress循环,可从两种帖子类型中抓取帖子。

我需要循环来获取设置了某些类别的帖子。由于是两种不同的帖子类型,因此它们都有类别分类法。当用户选择前端中的一个类别时,我希望循环从某个类别中的某个类别下的所有帖子,以及该类别中该类别中的另一个类别的所有帖子,从该类别中获取所有帖子。

为简化我正在尝试做的事情的描述:

  • 用户单击前端的“头发和皮肤护理”类别
  • 抢圈 来自“发贴”类别下“发贴”下的所有发贴 'category_name'
  • Loop收集“测验”下所有类别的帖子 “ quiz_category”中的“头发护理”
  • 显示之前的所有帖子 找到

从两种类型的帖子中获取循环并不是问题,但是我一直坚持尝试仅从特定类别的帖子中获取循环。我正在尝试“ tax_query”,但是循环似乎只是完全忽略了它,好像我根本没有放tax_query一样。

在tax_query外部单独运行“ category_name”或“ quiz_category”也可以。但是在tax_query中,它们都被完全忽略了。

    $cat = $_GET['cat'];
    $cat = sanitize_text_field($cat);

    $args = array(
        'post_type' => array('post', 'quizzes'),
        'posts_per_page' => -1,
        'category__not_in' => array( 9, 10 ),
        'tax_query' => array(
            'relation' => 'OR',
            array(
                'taxonomy' => 'category_name',
                'field'    => 'slug',
                'terms'    => $cat
            ),
            array(
                'taxonomy' => 'quiz_category',
                'field'    => 'slug',
                'terms'    => $cat
            ),
        )
    );

1 个答案:

答案 0 :(得分:1)

我认为问题在于您要为术语段塞值传递一个字符串。

public function verify($token) { $new_token = User::where('email_token',$token)->firstOrFail()->verified(); // <-- $email = new EmailAdmVerification(new User(['email_token' => $new_token, 'name' => $user->name])); return redirect('login'); } 之外,我认为您可以传递字符串或数组。在tax_query内部,有多个分类法,我在documentation中看到的唯一示例中,这些值都包装在数组中。

文档没有具体说明我能找到的任何地方。但是,如果您仅可以使用字符串而不是数组,那么我应该从上面链接的文档直接复制的该片段应显示在该位置:

tax_query


话虽如此,您的代码应如下所示:

$args = array(
    'post_type' => 'post',
    'tax_query' => array(
        'relation' => 'OR',
        array(
            'taxonomy' => 'category',
            'field'    => 'slug',
            'terms'    => array( 'quotes' ),
        ),
        array(
            'taxonomy' => 'post_format',
            'field'    => 'slug',
            'terms'    => array( 'post-format-quote' ),
        ),
    ),
);
$query = new WP_Query( $args );

如果这行不通,您可以回显 $cat = $_GET['cat']; $cat = sanitize_text_field($cat); $args = array( 'post_type' => array('post', 'quizzes'), 'posts_per_page' => -1, 'category__not_in' => array( 9, 10 ), 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => 'category_name', 'field' => 'slug', 'terms' => array($cat) ), array( 'taxonomy' => 'quiz_category', 'field' => 'slug', 'terms' => array($cat) ), ) ); 变量并发布结果吗?