2014-01-31 149 views
1

好吧,我知道这可能是一个愚蠢的问题,或者你可能认为这是问十几遍。但无论我是绝望还是错过了一些东西,或者这是一个独特的问题。无论如何,我需要你的帮助。Woocommerce:按字母顺序显示产品

我的客户想展示她的产品以字母的方式。当我选择默认产品排序“自定义排序+名称” 但所有东西都搞砸了......并且“排序产品”屏幕中的所有字母顺序都没有了。现在他们都根据他们的“订单”号码显示。

有没有什么办法,使产品在字母顺序返回到列表?

我会做手工在“排序产品”,但也有大约100产品,我不知道,当客户端将增加新产品的问题就不会再回来。

编辑
我发现,当您使用默认的排序(按订单+姓名)开头默认按字母顺序显示的所有产品,但是一旦你移动一个项目出来的字母顺序(例如,一个“F”项目放置在“A”项前)所有订单搞砸了,并遵循只根据产品的订单号

+0

在当地尝试woocommerce且有defoult排序选项中宇商贸字母下降的承你可以使用 –

+0

谢谢Vickey,但不知道你的意思是我的本地。默认排序选项,我正在使用。而且它工作的很好,直到我认为我们在“排序产品”中陈述了移动产品。 –

+0

您是否检查过WooCommerce Admin >>设置>>目录>> 当您将“默认产品排序”设置为默认值时,它们将显示在您为每个产品设置的排名中。 –

回答

1
<?php 

add_filter('woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args'); 

function custom_woocommerce_get_catalog_ordering_args($args) { 
$orderby_value = isset($_GET['orderby']) ? woocommerce_clean($_GET['orderby']) : apply_filters('woocommerce_default_catalog_orderby', get_option('woocommerce_default_catalog_orderby')); 

if ('random_list' == $orderby_value) { 
$args['orderby'] = 'rand'; 
$args['order'] = ''; 
$args['meta_key'] = ''; 
} 

return $args; 
} 

add_filter('woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby'); 
add_filter('woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby'); 

function custom_woocommerce_catalog_orderby($sortby) { 
$sortby['random_list'] = 'Random'; 
return $sortby; 
} 
+0

使用顺序根据你的缓解 –

+1

你也可以使用插件http://wordpress.org/plugins/woocommerce-more-sorting/ –

+0

谢谢Vickey!我现在试试这个。但是我应该用什么参数来进行字母排序呢?在这里我看到的代码只是“随机”选择 –

3

为了扩大对@ Vikas_Gautam答案,并对其进行修改以排序排序文章标题,你会做以下几点:

add_filter('woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args'); 

function custom_woocommerce_get_catalog_ordering_args($args) { 
    $orderby_value = isset($_GET['orderby']) ? woocommerce_clean($_GET['orderby']) : apply_filters('woocommerce_default_catalog_orderby', get_option('woocommerce_default_catalog_orderby')); 

    if ('alphabetical' == $orderby_value) { 
     $args['orderby'] = 'title'; 
     $args['order'] = 'DESC'; 
    } 

    return $args; 
} 

add_filter('woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby'); 
add_filter('woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby'); 

function custom_woocommerce_catalog_orderby($sortby) { 
    $sortby['alphabetical'] = __('Alphabetical'); 
    return $sortby; 
} 

看看食品的WP_Query sort parameters

1

为了扩展@ helgatheviking的答案,我尝试了这种方法,并且按字母顺序排序(但是只有在下拉菜单中选择了字母顺序选项),这是因为if ('alphabetical' == $orderby_value)条件。

这是国防部这种种默认情况下按字母升序,所不同的条件if ('alphabetical' == $orderby_value || 'menu_order' == $orderby_value)$args['order'] = 'ASC'

add_filter('woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args'); 

function custom_woocommerce_get_catalog_ordering_args($args) { 
    $orderby_value = isset($_GET['orderby']) ? woocommerce_clean($_GET['orderby']) : apply_filters('woocommerce_default_catalog_orderby', get_option('woocommerce_default_catalog_orderby')); 

    if ('alphabetical' == $orderby_value || 'menu_order' == $orderby_value) { 
     $args['orderby'] = 'title'; 
     $args['order'] = 'ASC'; 
    } 

    return $args; 
} 

add_filter('woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby'); 
add_filter('woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby'); 

function custom_woocommerce_catalog_orderby($sortby) { 
    $sortby['alphabetical'] = __('Alphabetical'); 
    return $sortby; 
} 

我工作的网站已经分组的产品,所以我确信他们是按字母顺序排列为好。 ..

add_filter('woocommerce_grouped_children_args', 'custom_grouped_children_args'); 
function custom_grouped_children_args($args){ 
    $args['orderby'] = 'title'; 
    $args['order'] = 'ASC'; 
    return $args; 
} 
0
$catalog_orderby_options = apply_filters('woocommerce_catalog_orderby', array(
     'menu_order' => __('Default sorting', 'woocommerce'), 
    here -> 'title' => __('Sortierung nach Titel, A–Z', 'woocommerce'), 
     'popularity' => __('Sort by popularity', 'woocommerce'), 
     'rating'  => __('Sort by average rating', 'woocommerce'), 
     'date'  => __('Sort by newness', 'woocommerce'), 
     'price'  => __('Sort by price: low to high', 'woocommerce'), 
     'price-desc' => __('Sort by price: high to low', 'woocommerce') 
    )); 
+1

请解释你的答案..... – GYaN