質問: new wp_query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); ?>
回答: さて、ちょっとした回避策で解決しました。 woocommerceに新しい並べ替え機能を追加します。 https://gist.githubusercontent.com/bekarice/0df2b2d54d6ac8076f84/raw/wc-sort-by-postmeta.php はうまく動作しますが、メタ値に関するビットは削除されます)カスタムフィールドでソートしていないので、キーも使用できます(ただし、これも有効な回避策になる可能性があります)。 orderbyを 'name'に変更してください。例えば投稿タイトルではなくスラグを投稿してください。 / a-childs-storyが/ childs-storyになるように、スラッグ/パーマリンクから問題のある単語を削除するようにすべての製品を変更します。 woocommerce設定(商品)のデフォルトオプションとして新しい並べ替えオプションを選択します。 これがあなたのfunctions.phpのための最終的なコードです: /** * 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' );