[解決済み] 特定カテゴリの商品詳細ページで専用テンプレートを使うには3

フォーラム 使い方全般 [解決済み] 特定カテゴリの商品詳細ページで専用テンプレートを使うには3

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

    動作に関するご質問の場合は必ずご記入ください。


    WordPress のバージョン:3.6

    Welcart のバージョン:1.3.5

    ご利用のテーマ:welcart_default

    症状を確認したブラウザ:chrome,safari,IE,firefox

    サーバー(会社名、サービス名):お名前ドットコム

    SSLの利用: 無し

    WordPress のパーマリンク設定:デフォルト


    初めまして。

    いつもお世話になっております。

    特定カテゴリの商品詳細ページで専用テンプレートを使いたく

    過去の記事の

    https://www.welcart.com/forum/topic.php?id=2616

    https://www.welcart.com/forum/topic.php?id=1417

    を拝見し、試行錯誤したのですが、

    専用テンプレートが表示されないので、投稿させて頂きました。

    申し訳ありませんがプログラムの知識も浅く、Wordpressはまだまだ素人でわからないことも多いので、おかしなところがあればご指導頂きたいです。

    具体的な症状と致しましては、

    カテゴリースラッグ別に商品詳細ページを切り替えたく、カテゴリーhogeを登録した商品を開いても、ノーマルのwc_item_single.phpが呼び出されてしまいます。

    functionsにはこのように記述しています。

    add_action(‘usces_action_template_redirect’, ‘my_action_template_redirect’, 8);

    function my_action_template_redirect() {

    global $usces, $post, $usces_entries, $usces_carts, $usces_members, $usces_item, $usces_gp, $member_regmode;

    if( is_single() && ‘item’ == $post->post_mime_type ) {

    $usces_item = $usces->get_item( $post->ID );

    if ( is_single() && ‘hoge’ == $post->category_name ) {

    if( file_exists(get_stylesheet_directory() . ‘/wc_templates/wc_item_single_hoge.php’) ){

    include(get_stylesheet_directory() . ‘/wc_templates/wc_item_single_hoge.php’);

    exit;

    }

    }else{

    if( file_exists(get_stylesheet_directory() . ‘/wc_templates/wc_item_single.php’) ){

    include(get_stylesheet_directory() . ‘/wc_templates/wc_item_single.php’);

    exit;

    }

    }

    return true;

    }

    }

    その他にも

    if ( is_category(‘hoge”) ) {

    なども試しましたが、できませんでした。

    根本的に条件の書き方が間違っているような気がします。

    どうかよろしくお願いします。

    #67653
    doseisan
    参加者

    自己解決いたしました。

    上記の方法では出来なかったのですが、普通にワードプレスでよく使われている分岐で出来ました。

    wordpressはシングルページを指定したとき最初に絶対singleが読み込まれるということなので、

    それを利用しました。

    wellcartではwc_item_single.phpが最初に読み込まれますので、wc_item_single.phpに分岐を記述しました。

    wc_item_single.phpを複製して、片方を/singleフォルダを作り移動

    もう片方にヘッダーとフッターだけ残して、

    <?php

    if ( in_category(‘hoge’) ) {

    include(TEMPLATEPATH . ‘/wc_templates/wc_item_single_hoge.php’);

    } else {

    include(TEMPLATEPATH . ‘/wc_templates/single/wc_item_single.php’);

    }

    ?>

    このようにして解決致しました。

    お騒がせいたしました。

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