我的一位客户希望按产品SKU
显示所有woocommerce产品。
通常我将以下代码用于展示产品。
$postArg = array('post_type'=>'product',
'post_status'=>'publish',
'posts_per_page'=>-1,
'orderby'=>'data',
'order'=>'DESC',
);
$queryGetFiles = get_posts($postArg);
但是现在我的客户希望在正面显示产品SKU
的所有产品。
像这样的SKU 1041-14、1041-12、1041-16、1041、2001、3501
所有产品的sku值和显示均不具有"-"
字符
有人知道我应该怎么做吗?
答案 0 :(得分:2)
尝试一下
$postArg = array(
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_key' => '_sku',
'orderby' => 'meta_value' // meta_value_num if ordered by intergers
'order' => 'DESC',
);
$queryGetFiles = get_posts($postArg);
答案 1 :(得分:1)
尝试将代码放入function.php
.logo__container{
display: flex;
align-items: center;
justify-content: center;
}
答案 2 :(得分:0)
请尝试这个。让我知道这是否完美。...
/**
* Adds the ability to sort products in the shop based on the SKU
* Can be combined with tips here to display the SKU on the shop page: https://www.skyverge.com/blog/add-information-to-woocommerce-shop-page/
*/
function sv_add_sku_sorting( $args ) {
$orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
if ( 'sku' == $orderby_value ) {
$args['orderby'] = 'meta_value';
$args['order'] = 'asc';
// ^ lists SKUs alphabetically 0-9, a-z; change to desc for reverse alphabetical
$args['meta_key'] = '_sku';
}
return $args;
}
add_filter( 'woocommerce_get_catalog_ordering_args', 'sv_add_sku_sorting' );
function sv_sku_sorting_orderby( $sortby ) {
$sortby['sku'] = 'Sort by SKU';
// Change text above as desired; this shows in the sorting dropdown
return $sortby;
}
add_filter( 'woocommerce_catalog_orderby', 'sv_sku_sorting_orderby' );
add_filter( 'woocommerce_default_catalog_orderby_options', 'sv_sku_sorting_orderby' );
答案 3 :(得分:0)
谢谢大家的支持。
我已经通过以下方式自行解决了该问题。
$postArg = array('post_type'=>'product',
'post_status'=>'publish',
'posts_per_page'=>-1,
'orderby'=>'date',
'order'=>'DESC',
'meta_query' => array(
array(
'key' => '_sku',
'value' => '-',
'compare' => 'NOT LIKE'
)
),
);