category.phpにて在庫有りで商品コード順と金額順に商品一覧リスト表示

フォーラム テンプレート(テーマ) category.phpにて在庫有りで商品コード順と金額順に商品一覧リスト表示

  • このトピックには2件の返信、2人の参加者があり、最後にuishiにより4年、 12ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #88432
    mai
    参加者

    現在の環境は下記の通りです。
    WordPress のバージョン:5.2.2
    Welcart のバージョン: 1.9.19
    Welcart専用の拡張プラグイン:
    ご利用のテーマ:welcart_basic(子テーマ)
    症状を確認したブラウザ:chrome
    サーバー:(会社名、サービス名)xserver
    SSLの利用:(独自 常時SSL)

    category.phpにて在庫有り&アイテムコード順と金額順に
    商品一覧リスト表示を出したいのですがうまくいきません。
    どなたかご教示お願い申し上げます。

    現状は偶然に動作している状態ですが。ページングができていない状態です。
    少しずつ勉強をしながら変更を加えていますが・・・・
    ここ何日か足踏み状態です。
    現状は、function.phpに下記の様にしています。
    内容はあちらこちらのサイトより集めて貼り合わせた内容です。

    //商品コード順に並べる
    function getcatorder( $query ) {
    if ( is_admin() || ! $query->is_main_query() )
    return;
    if ( $query->is_category() ) {
    $query->set( ‘posts_per_page’, ‘-1’ );
    $query->set( ‘orderby’, ‘meta_value’ );
    $query->set( ‘meta_key’, ‘_itemCode’ );
    $query->set( ‘order’, ‘ASC’ );

    return;
    }
    }
    add_action( ‘pre_get_posts’, ‘getcatorder’ );
    ------pre_get_postsに2回フックしています --------
    add_action( ‘pre_get_posts’, ‘usces_custom_sort_item’, 10, 1 );
    function usces_custom_sort_item( $query ) {
    if ( is_admin() || !$query->is_main_query() ) return;
    if ( $query->is_search ) {
    set_query_var(‘post_type’, ‘post’);
    }
    if ( $query->is_category() || $query->is_tag() ) {
    $args = array();
    $sort = isset($_GET[‘sort’]) && is_string($_GET[‘sort’]) ? $_GET[‘sort’] : ”;
    if ( $sort ){
    if ( $sort == ‘price_asc’ ) { //価格の安い順 ‘price_asc’の値は任意に変更可
    $query->set( ‘meta_key’, ‘itemminprice’ );//itemPriceMin
    $query->set( ‘orderby’, array( ‘meta_value_num’ => ‘ASC’, ‘date’ => ‘DESC’ ) );
    }以下 略

    category.phpに($_GET[‘sort’])のためのセレクトフォームを設置しています。
    category.phpにて在庫が無いものはcontinue;として省いている状態です。
    以上のような流れです。
    continue;として省区のではなく在庫状況の廃盤のものは、
    ソートの段階で省くようにできないものかと模索の日々です。
    下記が現在試した最終のコードですがダメでした。
    $args = array(
    ‘post_type’ => ‘post’
    , ‘orderby’ => ‘meta_value’
    , ‘meta_key’ => ‘itemminprice’
    , ‘order’ => ‘ASC’
    , ‘meta_query’ => array(
    array( ‘key’=>’_isku_’,
    ‘value’=>'”stocknum”;s:1:”0″‘,
    ‘compare’=>’NOT LIKE’,
    ),
    array( ‘key’=>’_isku_’,
    ‘value’=>'”stocknum”;i:0’,
    ‘compare’=>’NOT LIKE’,
    ),
    ‘relation’=>’AND’
    )
    );

    $query->set(‘meta_query’ , $args);

    どのように設定すれば良いのかご教示下されば幸いです。
    宜しくお願い致します。

    #88436
    mai
    参加者

    自己解決致しました。
    正しい記述かわかりませんが、
    偶然かも知れませんがなんとか動作しています。

    #88608
    uishi
    参加者

    Welcart テンプレートタグ一覧
    usces_the_itemZaiko()で判定して表示だと遅くなるんでしょうか。
    テンプレートタグの使い方の間違いになるんでしょうか。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。