【welcart】商品毎に専用のテンプレートを使う
Welcartの商品情報出力部分はsingle_item.phpに記述されていますが、これがある特定の商品のみデザインを変えたい場合や
情報を追加したい場合もあります。
Welcartの機能に、single_item.phpを他のパスに変更できるフックがあるので、それを利用して特定の商品のページのみ違うデザインを読み込ませることにします。
functions.phpに
add_action('wp', 'my_welcart_template', 9); function my_welcart_template(){ add_filter('usces_template_path_single_item', 'my_welcart_single_item_path'); } function my_welcart_single_item_path($path){ global $post; $single_path = get_stylesheet_directory() . '/templates/'; $single_item = 'single_item.php'; if(file_exists($path = $single_path . 'p' . $post->ID . '-' . $single_item)){return $path;} if(file_exists($path = $single_path . $post->post_name . '-' . $single_item)){return $path;} $path = $single_path . $single_item; return $path; }
と記述します。
これでテーマの中のtemplatesディレクトリの中に
1.p{商品id}-single_item.phpがあった場合それを表示(例:postidが10の場合p10-single_item.phpが読み込まれる)
2.{ページスラッグ}-single_item.phpがあった場合それを表示(例 slugがappleだった場合apple-single_item.phpが読み込まれる)
3.single_iteme.phpを読み込む(これは必ず用意しておいてください)
の順番でファイルを探し出して読み込みます。
少し変更すれば特定のタグを持っている場合のみ特定のページを読み込むとかもできるかもしれません。