Welcartをアップデートしたら商品詳細ページにテンプレートが割り当てられない状態に

Welcartをバージョン1.9.3にアップデートしたら商品詳細ページに専用テンプレート「wc_item_single.php」が割り当てられない状態になりました。デバッグしてみるとsingle.phpが割り当てられており、コンテンツ部分にWelcartのフォールバックテンプレート(多分「single_item.php」)が表示されていることを発見。色々調べた結果、私の状況では以下の方法で解決できました。

商品詳細ページに「wc_item_single.php」を割り当てる

以下が対応したコードです。テーマのfunctions.phpに記述します。

2つ関数を書いていますが、1つ目の1行コードで対応できます。もしサーバーのPHPバージョンが5.3未満の場合は無名関数が使えないので後者で対応します。(そもそもWordPressの推奨動作環境がPHPバージョン7以上なので中々5.3未満はないかと思いますが…)

商品詳細ページのテンプレートをリダイレクトしているプログラム

同じ現象に遭遇したとしても別のことが原因の可能性もあるので、リダイレクトしているコアプログラムを一部貼り付けておきます。「usc-e-shop\classes\usceshop.class.php」クラスのtemplate_redirect()メソッドです。(Welcartのバージョンは1.9.3、商品詳細ページをリダイレクトしている部分のみ切り取ってます)

私の場合は9行目のフック「usces_filter_template_redirect」が原因でした。今回紹介したコードで直らない場合、他の条件分岐の部分でテンプレートが割り当てられない状況に陥っているかもしれません。

コメント

「何かそこ違うよ」「こうした方が良い」っていう部分があったら指摘して頂けると嬉しいです。

トラックバック

トラックバックは現在ありません。

Trackback: https://increment-log.com/welcart-item-single-not-template/trackback/