Jigoshop-更改产品在网格中的显示顺序

时间:2011-08-17 作者:Rob

使用http://jigoshop.com/ 插件,是否可以更改产品在不同网格中的显示顺序。

我不太确定它是如何决定顺序的,但是否可以通过菜单顺序将其更改为排序?

这是我正在处理的页面-http://www.roadsafetyforchildren.co.uk/product-category/roadmaster-sets/ (我还没有检查浏览器与该网站的兼容性-我正在使用Chrome)

5 个回复
最合适的回答,由SO网友:patnz 整理而成

正如Bainernet所说,您需要调整查询变量,但是我需要在“jigoshop\\u before\\u shop\\u loop”挂钩之前更改订单,以使其正常工作。此函数用于按标题发送pre\\u get\\u帖子和订单。

    add_action(\'pre_get_posts\', \'my_custom_query\');
    function my_custom_query($wp_query){
        if(is_tax(\'product_cat\')){

            $wp_query->query[\'order\'] = \'ASC\';
            $wp_query->query[\'orderby\'] = \'title\';

            return $wp_query;
        }
    }

SO网友:Josh B

我知道这是一个老生常谈的问题,但以上这些都不适合我。在我的产品页面上,我想按包含产品发布日期的元字段进行排序。最后,我在相关的Jigoshop过滤器挂钩中添加了一个新的过滤器,通过赋予我更高的优先级来覆盖标准的Jigoshop过滤器。将此添加到函数。php做到了这一点:

add_filter( \'loop-shop-query\', create_function( \'\', \'return array("meta_key" => "release_date", "orderby" => "meta_value_num", "order" => "desc");\' ), 999 );

SO网友:Bainternet

Jigoshop有很多过滤器挂钩,如果你使用得当,你可以做任何你想做的事情(几乎),在你的情况下,你可以使用jigoshop_before_shop_loop 动作挂钩调用一个函数,该函数将检查当前调用是否来自分类页面(类别产品),如果是,则检查是否是要重新排序的特定类别,如果是这种情况,则设置oderby 参数

add_filter(\'jigoshop_before_shop_loop\',\'my_item_order\');
function my_item_order(){
    global $columns, $post, $per_page, $wp_query;
    if (is_tax()){
        $term = get_term_by( \'slug\', get_query_var($wp_query->query_vars[\'taxonomy\']), $wp_query->query_vars[\'taxonomy\']);
        if ($term->ID == \'YOUR_ID\'){
            $wp_query->query[\'order_by\'] = \'whatever\'
        }
    }
}

SO网友:studioromeo

Jigoshop订购产品的方式与Wordpress订购帖子的方式相同。为了给您的产品下一个特定的订单,您可以按照Bainternet的建议执行,也可以修改发布日期以满足您的订单要求。

SO网友:Jason Coleman

@patnz的回答几乎对我有用。我必须设置“query\\u vars”数组,而不是“query”数组。不确定这是否是由于回答部分的输入错误,或者可能是WP版本。

我还使用了add\\u filter而不是add\\u操作,并将return$wp\\u查询行下移。

这是我的代码,用于按标题对分类法归档页面进行排序。

/*
    Change ordering on category pages
*/
function my_product_ordering($wp_query)
{           
    if(is_tax(array(\'product_cat\')))
    {
        $wp_query->query_vars[\'order\'] = \'ASC\';
        $wp_query->query_vars[\'orderby\'] = \'title\'; 
    }

    return $wp_query;
}
add_filter(\'pre_get_posts\', \'my_product_ordering\');

结束

相关推荐