解決済functions.php内にてカテゴリーIDの取得方法?

フォーラム その他 【解決済】functions.php内にてカテゴリーIDの取得方法?

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

    宜しくお願いいたします。

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

    カテゴリーIDの取得方法が判らず悩んでいます。
    functions.php内は下記のとおりです。
    add_action( ‘pre_get_posts’, ‘usces_custom_sort’, 10, 3 );
    function usces_custom_sort( $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() ) {
    $my_word = isset($_GET[‘my_word’]) && is_string($_GET[‘my_word’]) ? $_GET[‘my_word’] : ”;?>
    <?php
    /* $catID = get_query_var(‘cat’);とか
    $cat = get_the_category();$cat = $cat[1];$catID = $cat->cat_ID;とか
    ここでカテゴリーIDを取得するが取得できていない?
    */
    ?>
    <?php if ($my_word && ($catID == ’10’ || $catID == ’20’)){
    if ( $my_word == ‘AA’ ) {
    $query->set( ‘cat’, ‘-300’ );
    } elseif ( $my_word == ‘BB’ ) {
    $query->set( ‘cat’, ‘300’ );
    }
    }
    }
    }
    //———————————

    フォームで選んだ中身に合わせてlocationする際に
    && ($catID == ’10’ || $catID == ’20’)は
    現在販売中の商品の中からカテゴリー300に登録された商品と
    登録されていないものに分けています。

    これとは別に過去に販売した商品も表示する際に分類できるようにしたいので
    過去の商品を表示する際のカテゴリーIDを
    && ($catID == ‘100’ || $catID == ‘200’)のように設定を分けたいと考えています。
    しかし、$catIDが取得できません。
    ちなみにcategory.php内では上記のコメントアウトした方法で取得できています。
    && ($catID == ’10’ || $catID == ’20’)を指定しない場合は動作しています。

    他にも選択肢がありますが省いています。

    ご教示下さいますようお願い致します。。

    • このトピックはfurutaが3年、 6ヶ月前に変更しました。
    #91502
    mai
    参加者

    解決致しました。
    $catID = get_query_var(‘cat’);せずとも
    便利な関数がありました。
    is_category(array(10,20))の条件を付けることで解決しました。
    お騒がせいたしました。

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