wc_change_get_terms_defaults()
Change get terms defaults for attributes to order by the sorting setting, or default to menu_order for sortable taxonomies.
Hooks from the function
Return
Array
.
Usage
wc_change_get_terms_defaults( $defaults, $taxonomies );
- $defaults(array) (required)
- An array of default get_terms() arguments.
- $taxonomies(array) (required)
- An array of taxonomies.
Changelog
Since 3.6.0 | Introduced. |
Since 3.6.0 | Sorting options are now set as the default automatically, so you no longer have to request to orderby menu_order. |
wc_change_get_terms_defaults() wc change get terms defaults code WC 9.6.1
function wc_change_get_terms_defaults( $defaults, $taxonomies ) { if ( is_array( $taxonomies ) && 1 < count( $taxonomies ) ) { return $defaults; } $taxonomy = is_array( $taxonomies ) ? (string) current( $taxonomies ) : $taxonomies; $orderby = 'name'; if ( taxonomy_is_product_attribute( $taxonomy ) ) { $orderby = wc_attribute_orderby( $taxonomy ); } elseif ( in_array( $taxonomy, apply_filters( 'woocommerce_sortable_taxonomies', array( 'product_cat' ) ), true ) ) { $orderby = 'menu_order'; } // Change defaults. Invalid values will be changed later @see wc_change_pre_get_terms. // These are in place so we know if a specific order was requested. switch ( $orderby ) { case 'menu_order': case 'name_num': case 'parent': $defaults['orderby'] = $orderby; break; } return $defaults; }