[解決済み] 特定カテゴリの商品詳細ページで専用テンプレートを使うには3
-
投稿者投稿
-
2013年9月27日 2:18 AM #55815doseisan参加者
動作に関するご質問の場合は必ずご記入ください。
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”) ) {
なども試しましたが、できませんでした。
根本的に条件の書き方が間違っているような気がします。
どうかよろしくお願いします。
2013年9月30日 8:31 AM #67653doseisan参加者自己解決いたしました。
上記の方法では出来なかったのですが、普通にワードプレスでよく使われている分岐で出来ました。
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’);
}
?>
このようにして解決致しました。
お騒がせいたしました。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。