返信先: 商品一覧ページでの商品の並び順変更
フォーラム › 使い方全般 › 商品一覧ページでの商品の並び順変更 › 返信先: 商品一覧ページでの商品の並び順変更
2024年4月2日 10:12 AM
#101673
参加者
——————————————-
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;
}