Created
January 22, 2015 23:18
-
-
Save steppohub/a79a131b179d79fc7fa2 to your computer and use it in GitHub Desktop.
order posts (woocommerce products) alphabetically but ignore certain words, eg 'The' and 'An'
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Cool orderby function from Monkey Puzzle. Adapted from: | |
* Tutorial: http://www.skyverge.com/blog/sort-woocommerce-products-custom-fields/ | |
**/ | |
function monkey_ordering_args( $sort_args ) { | |
$orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) ); | |
switch( $orderby_value ) { | |
// Name your sortby key whatever you'd like; must correspond to the $sortby in the next function | |
case 'slug': | |
$sort_args['orderby'] = 'name'; | |
// Sort by ASC because we're using alphabetic sorting | |
$sort_args['order'] = 'asc'; | |
break; | |
} | |
return $sort_args; | |
} | |
add_filter( 'woocommerce_get_catalog_ordering_args', 'monkey_ordering_args' ); | |
// Add these new sorting arguments to the sortby options on the frontend | |
function monkey_add_new_orderby( $sortby ) { | |
// Adjust the text as desired | |
$sortby['slug'] = __( 'Sort by name', 'woocommerce' ); | |
return $sortby; | |
} | |
add_filter( 'woocommerce_default_catalog_orderby_options', 'monkey_add_new_orderby' ); | |
add_filter( 'woocommerce_catalog_orderby', 'monkey_add_new_orderby' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment