当前位置: 首页 >wordpress

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

wordpress 2018-12-18 阅读量: 105 TAG:

本文将会介绍woocommerce自定义产品循环调用筛选,从而帮助你在主循环之外调用自己想要的woocommerce产品。
只调用精选产品(也就是在后台woocommerce产品列表的星标产品)
只调用促销的产品(促销产品是有原价和现价的产品)
产品按照价格从高到低排序
产品按照价格从低到高排序
实际上这里比较少资料或者无法与wordpress通用的调用只有1调用精选产品和促销产品,其他的排序显示基本上与wordpress的自定义循环相同。

woocommerce自定义循环调用精选产品
代码以及注释如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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只调用促销产品
(促销产品包含指定的产品分类)代码以及注释如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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调用产品自定义循环价格排序
代码以及详细注释如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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;

来源:(微信/QQ号:909912499),欢迎分享本文,转载请保留出处!部分内容来自网络,如有侵权请联系删除处理!

相关信息

本站提供代码修改,dedecms,WordPress仿站二次开发 / PHP网站建设以及SEO优化等网络营销推广等服务。

如有需要请加QQ: 909912499