如何用品类和品牌分类两种方式展示产品

时间:2016-06-02 作者:Mailmulah

我做了一个简单的循环来显示类别和品牌的产品库(自定义分类法)

这里是我的循环:

<?php 
$args = array( 
    \'post_type\' => \'product\', 
    \'posts_per_page\' => 4, 
    \'orderby\'      => \'DESC\',   

   \'tax_query\'     => array(
        \'relation\' => \'AND\',
         array( 
            \'taxonomy\' => \'brands\',
            \'field\'     => \'id\',
            \'terms\' => array($category)
       ),
         array( 
            \'taxonomy\' => \'product_cat\',
            \'field\'     => \'id\',
            \'terms\' => array($category)
    )
),  

    );
    $wp_query = null;
    $wp_query = new WP_Query( $args );?>
但没什么可展示的。当我改变时

        \'relation\' => \'AND\', to \'relation\' => \'OR\',
仅按品牌展示的产品。

Practice with the following Nitin Singh Chouhan\'S code and Champeau\'s suggestion, but still failed

 <?php 
 $args = array(
\'post_type\' => array(\'post\',\'product\'),
\'tax_query\' => array(
      \'relation\' => \'AND\',
   array(
     \'taxonomy\' => \'product_cat\',
     \'terms\' => array($category),
     \'field\' => \'id\'
   ),
   array(
     \'taxonomy\' => \'brands\',
     \'terms\' => array($categories_brands),
     \'field\' => \'id\'
      ),
   )
 ); 

     );
     $wp_query = null;
     $wp_query = new WP_Query( $args );?>

            <?php if ( $wp_query -> have_posts()) : ?>
        <?php while ( $wp_query -> have_posts()) : $wp_query -> the_post(); ?>

        <?php the_title(); ?>

        <?php 
        endwhile;
        wp_reset_query();
        endif;
        ?>
有人能帮我吗?

谢谢你的帮助。

2 个回复
SO网友:Champeau

如果我是你,我会打印r($类别),并确保它是给你身份证,而不是鼻涕虫。此外,您正在向product\\u cat和brands提交$类别。

如果您的字段类型是slug而不是id,并且product\\u cat和brands中的术语完全相同,那么这将起作用。。。虽然这在宏大的计划中没有意义。

您的ID在每个分类法中都是唯一的,因此将$category传递给这两个分类法将不起作用。

我希望这有帮助。

SO网友:Nitin Singh Chouhan

如果要按类别和品牌(两者)获取产品过滤器,则可以添加以下代码。。

$args = array(
    \'post_type\' => array(\'post\',\'product\'),
    \'tax_query\' => array(
          \'relation\' => \'AND\',
       array(
         \'taxonomy\' => \'product_cat\',
         \'terms\' => 82,
         \'field\' => \'id\'
       ),
       array(
         \'taxonomy\' => \'brand\',
         \'terms\' => 81,
         \'field\' => \'id\'
       ),
    )
);
query_posts($args);

   if ( have_posts() ) {
    while ( have_posts() ) {
        the_post();         
        the_title();        
    } 
} 
我希望这对你有帮助