Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save steppohub/a79a131b179d79fc7fa2 to your computer and use it in GitHub Desktop.
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'
/**
* 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