net shop adminプラグインを使ってネットショップを開設していて、以下のようなことがしたい
- 商品詳細ページを表示
- 商品の下に、そのカテゴリーに属する商品一覧を表示したい
- 商品は、それぞれ別の「商品アーカイブテンプレート」をしている
同じカテゴリーだけど、商品によってアーカイブテンプレートは別のものを指定している。例えば雑誌の単品と、定期購読でそれぞれテンプレートを作った場合、定期購読は
としているのに対し、単品は
としている。
仕様をみると、ショートコードでは、テンプレートは指定できるが、「商品アーカイブテンプレート」は指定できない。
色々試した結果、以下のハックで実現した。アーカイブを表示する do_shortcode(‘[product hogehoge]’); の前に
$wp_query->is_singular='';
と書く。どうやらこれのどれかを見て判別している模様。
ただこれだけだと気持ち悪いので、、
$wp_query->is_archive=1; $wp_query->is_single=''; $wp_query->is_singular='';
とした。shortcode実行後には元に戻しておこう。