当前位置: 首页 > 知识库问答 >
问题:

如何按类别对所有产品进行排序

李经国
2023-03-14

我对give all products有wp_查询请求,需要对这两个字段进行排序:按类别

在简单查询中:

$args = array(
        'orderby' =. 'product_cat menu_order'
        'posts_per_page' => -1,
        'post_type' => 'product',
        );

      $loop = new WP_Query($args);

在全局$product中,存在字段“菜单\订单”,但不存在字段“产品\目录”。

我可以用wp_query吗?或者也许存在另一种方法?

共有2个答案

朱伯寅
2023-03-14

在尝试和搜索的时候,我找到了一个解决方案,使用两个查询来实现这个目的,下面的例子可能会帮助你实现你的目的。

$catargs=数组(

'orderby'                  => 'name',

'order'                    => 'ASC',

代码分类get_categories

foreach($categories作为$category){?

// WP_Query arguments
$args = array (

    'post_type'              => 'resources',

    'cat'                    => $category->cat_ID,

    'posts_per_page'         => '-1',

    'order'                  => 'ASC',

'orderby'                => 'title',

);

// The Query
$query = new WP_Query( $args );

//循环

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        ?>
        <h5><?php the_title(); // Post title ?></h5>
        <?php 
        // You can all phone/ email here
    }
} else {
    // no posts found
}

// Restore original Post Data
wp_reset_postdata();

<代码>}?

让我知道这个方法是否对你有效。

锺超英
2023-03-14

我成立的方式是正确的,代码如下,这个例子

/* Products Loop */
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        $args = array(
            'posts_per_page' => $prod_per_page,
            'paged' => $paged,
            'post_type' => 'product',
            'product_cat' => $product_cat,
            'tax_query' => array(
                'relation' => 'AND',
                array(
                    'taxonomy' => 'product_cat',
                    'field' => 'term_id',
                    'terms' => $subcats_ar,
                    'operator' => 'NOT IN'
                ),
            ),
            'orderby' => array('menu_order' => 'ASC', 'title' => 'ASC')
        );
        $loop = new WP_Query($args);

更简单的方法,没有分页和排除子类别:

 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
        $args = array(
            'posts_per_page' => -1,
            'post_type' => 'product',
            'product_cat' => $product_cat,
            'tax_query' => array(
                'relation' => 'AND',
                array(
                    'taxonomy' => 'product_cat',
                    'field' => 'term_id'
                ),
            ),
            'orderby' => array('menu_order' => 'ASC', 'title' => 'ASC')
        );
        $loop = new WP_Query($args);

魔法线是:

'orderby' => array('menu_order' => 'ASC', 'title' => 'ASC')
 类似资料:
  • 我有这个nodeJS代码,但每当我发布数据时,最新的数据都会添加到末尾而不是开始。我试着添加

  • 我正在尝试按年份降序(不是完整日期,只有年份)然后按SKU升序对特定类别页面的产品进行排序。 这个想法是按年份对产品进行分组,在这个组中,按sku对它们进行排序。 我找到了一种针对特定类别的方法,以及通过提升SKU订购产品的代码。因为我是新的PHP我仍然在努力找出如何按年排序(再次,不是完整的日期)和如何 下面是我正在使用的代码: 我还发现留档(https://developer.wordpres

  • 我在我的活动主题文件: 我正在尝试按Desc对产品进行排序,但产品仍然默认排序(ASC)。 如何按描述对它们进行排序?

  • 请创建一个算法,它获取一个类列表,并以某种方式对它们进行排序 > A类是B类的子类 A类实现接口B B 的索引小于 A。 到目前为止我尝试的是, 我不确定这是否有效。

  • 我有两个表格;类别和产品。对于每个类别,我想计算其所有子类别中有多少产品。我已经计算了每个类别中有多少。示例表是: 类别: 产品: 所以我想让我的函数: 它只需要作为选择查询,无需更新数据库。 有什么想法吗? 编辑:SQL小提琴:http://sqlfiddle.com/#!2/1941a/4/0