【进阶】woocommerce自定义循环调用精选、促销以及产品排序

woocommerce自定义产品循环的调用

之前我们发布了一篇【现成代码】woocommerce主循环外调用指定的产品分类的文章,可以让你在主循环之外调用woocommerce的产品。

而之前的文章所说明的是调用woocommerce产品时,是使用woocommerce产品分类来调用具体的文章,

实际上,woocommerce的产品调用和我们在wordpress自定义循环中所使用的方法WP_Query是类似的,但又稍有不同,这里我们对于woocommerce产品调用的其他一些方式进行总结。

 

本文将会介绍woocommerce自定义产品循环调用筛选,从而帮助你在主循环之外调用自己想要的woocommerce产品。

  1. 只调用精选产品(也就是在后台woocommerce产品列表的星标产品)
  2. 只调用促销的产品(促销产品是有原价和现价的产品)
  3. 产品按照价格从高到低排序
  4. 产品按照价格从低到高排序

实际上这里比较少资料或者无法与wordpress通用的调用只有1调用精选产品和促销产品,其他的排序显示基本上与wordpress的自定义循环相同。

 

woocommerce自定义循环调用精选产品

代码以及注释如下:

 

global $wp_query, $post, $woocommerce,$query_string;
$product_visibility_term_ids = wc_get_product_visibility_term_ids();//获取精选产品
$args = array(
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'product_visibility',//按照产品显示查询
'field'    => 'term_taxonomy_id',
'terms'    => $product_visibility_term_ids['featured'],//筛选出精选产品
),
),
'posts_per_page' => 5,//一共需要调用的文章数量
'post_status'    => 'publish',//调用的文章为已经发布
'post_type'      => 'product',//调用的类型为产品(product)
'no_found_rows'  => 1,
'order'          => "ASC",//文章排序为时间正排序
'meta_query'     => array()//还可以使用post meta进行查询,这个和wordpress循环中使用一样
);
//以上为循环的参数
$query= new WP_Query( apply_filters( 'woocommerce_products_widget_query_args', $args ) );//建立循环查询
//开始循环
if($query->have_posts()) :
while ( $query->have_posts() ) :$query->the_post();
//loop 输出循环中的内容
endwhile;  //结束循环
wp_reset_query();//清除循环
endif;

 

woocommerce只调用促销产品

(促销产品包含指定的产品分类)代码以及注释如下

 

global $wp_query, $post, $woocommerce,$query_string;
$product_ids_on_sale    = wc_get_product_ids_on_sale();//获取所有的促销产品
$args = array(
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'product_cat',//此处参数指定为产品目录
'field' => 'id',//调用依据为产品目录id
'terms' => array( 11 ),//11为产品目录id
),
),
'posts_per_page' => 5,//一共需要调用的文章数量
'post_status'    => 'publish',//调用的文章为已经发布
'post_type'      => 'product',//调用的类型为产品(product)
'no_found_rows'  => 1,
'order'          => "ASC",//文章排序为时间正排序
'meta_query'     => array()//还可以使用post meta进行查询,这个和wordpress循环中使用一样
'post__in' =>$product_ids_on_sale//筛选出促销产品
);
//以上为循环的参数
$query= new WP_Query( apply_filters( 'woocommerce_products_widget_query_args', $args ) );//建立循环查询
//开始循环
if($query->have_posts()) :
while ( $query->have_posts() ) :$query->the_post();
//loop 输出循环中的内容
endwhile;  //结束循环
wp_reset_query();//清除循环
endif;

 

woocommerce调用产品自定义循环价格排序

代码以及详细注释如下

 

global $wp_query, $post, $woocommerce,$query_string;
$args = array(
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'product_cat',//此处参数指定为产品目录
'field' => 'id',//调用依据为产品目录id
'terms' => array( 11 ),//11为产品目录id
),
),
'posts_per_page' => 5,//一共需要调用的文章数量
'post_status'    => 'publish',//调用的文章为已经发布
'post_type'      => 'product',//调用的类型为产品(product)
'no_found_rows'  => 1,
'order'          => "ASC",//正排序,如果是逆排序这里参数为“desc”
‘orderby’=> 'meta_value_num',
'meta_key'     =>  '_price'//以自定义字段价格进行排序
);
//以上为循环的参数
$query= new WP_Query( apply_filters( 'woocommerce_products_widget_query_args', $args ) );//建立循环查询
//开始循环
if($query->have_posts()) :
while ( $query->have_posts() ) :$query->the_post();
//loop 输出循环中的内容
endwhile;  //结束循环
wp_reset_query();//清除循环
endif;

 

 

除了以上一些自定义循环和wordpress自定义调用有所区别之外,实际上大部分的调用都和wordpress自定义查询输出的循环使用方法是一样的。

 

上一篇:

下一篇:

如未标明出处,所有文章均为WEB主题公园原创,如需转载,请附上原文地址,感谢您的支持和关注。

本文地址:https://www.themepark.com.cn/jjwoocommercezdyxhdyjx.html

WordPress原创主题,高端网站模板建站,网站模板建站资源以及开发知识分享,尽在WEB主题公园
WEB主题公园致力于开发适合中国人习惯的中文WordPress网站模板,并提供全程视频教程,让您能够轻松的使用网站模板建立好自己的网站!

相关文章

文章评论

您好!请登录

取消回复

    个人中心我的

    联系我们x

    联系我们,从qq在线客服,电话和邮件

    售前客服-1[点击对话]

    购买之前想要了解和咨询

    售前客服-2[点击对话]

    购买之前想要了解和咨询

    售后客服[售后支持]

    购买后输入订单号加好友

    咨询热线:0731-8578 7193

    联系邮箱:
    info@themepark.com.cn

    请注意:在线客服以及咨询热线请在 工作日的9:30~18:00来电咨询 电子邮件在任何时间都会回复

    客服
    回到顶部 顶部