net shop adminプラグインを使って商品ページ内で商品アーカイブテンプレートを使う方法

Pocket

net shop adminプラグインを使ってネットショップを開設していて、以下のようなことがしたい

  • 商品詳細ページを表示
  • 商品の下に、そのカテゴリーに属する商品一覧を表示したい
  • 商品は、それぞれ別の「商品アーカイブテンプレート」をしている

同じカテゴリーだけど、商品によってアーカイブテンプレートは別のものを指定している。例えば雑誌の単品と、定期購読でそれぞれテンプレートを作った場合、定期購読は
settings1
としているのに対し、単品は
settings2
 
としている。
仕様をみると、ショートコードでは、テンプレートは指定できるが、「商品アーカイブテンプレート」は指定できない。
色々試した結果、以下のハックで実現した。アーカイブを表示する do_shortcode(‘[product hogehoge]’); の前に

    $wp_query->is_singular='';

と書く。どうやらこれのどれかを見て判別している模様。
ただこれだけだと気持ち悪いので、、

    $wp_query->is_archive=1;
    $wp_query->is_single='';
    $wp_query->is_singular='';

とした。shortcode実行後には元に戻しておこう。
 

この記事を書いた人