返信先: 商品一覧ページでの商品の並び順変更

フォーラム 使い方全般 商品一覧ページでの商品の並び順変更 返信先: 商品一覧ページでの商品の並び順変更

#101673
folon
参加者

——————————————-
WordPress のバージョン:6.0.7
Welcart のバージョン:2.9.14
PHP のバージョン:7.4.33
Welcart専用の拡張プラグインとバージョン : WCEX SKU Select 1.4.5
ご利用の親テーマとバージョン :Welcart Basic1.8.3
ご利用の子テーマとバージョン :自作の子テーマ
症状を確認したブラウザ:どれでも
サーバー【重要】:WADAX/WPスタンダードプラン
——————————————–

以前このトピックを拝見し、私も商品コードの並びで表示できることができました。
先日welcartのバージョンを最新にしたので、この方法が使えなくなってしまいました。

「Welcart 2.7 のためのカスタマイズ修正」を確認して、functions.phpに下記を記述しましたが表示の並び順に変化がありません。
初心者で、質問の仕方が間違っているかもしれませんが、アドバイスどうぞよろしくお願いいたします。

function sort_by_itemname( $query ) {
        if ( is_admin() || ! $query->is_main_query() ) {
            return;
        }

        if ( $query->is_category ) {
            $cat_id  = get_cat_ID( get_query_var( 'category_name' ) );
            $cat_id2 = get_query_var( 'cat' );
            if ( usces_is_cat_of_item( $cat_id ) || usces_is_cat_of_item( $cat_id2 ) ) {
                add_filter( 'posts_join', 'my_join' );
                add_filter( 'posts_orderby', 'my_orderby');
            }
        }
    }
    add_action( 'pre_get_posts', 'sort_by_itemcode’ );

    function my_join( $join ) {
        global $wpdb;
        $item_table = usces_get_tablecode( 'usces_item' );
        $join .= " INNER JOIN {$item_table} AS welitem ON {$wpdb->posts}.ID = welitem.post_id";
        return $join;
    }

    function my_orderby( $orderby ) {
        $orderby = 'welitem.itemCode ASC';
        return $orderby;
    }