2014-01-12 8 views
10

私は、単純な商品よりも可変(単一)商品ページで異なるように短い説明テンプレートを編集しようとしています。Woocommerce - 商品の投稿にバリエーションがあるかどうかを確認する方法

global $post; 

if (! $post->post_excerpt) return; 
?> 
<div itemprop="description"> 
    <?php echo apply_filters('woocommerce_short_description', $post->post_excerpt) ?> 
</div> 

は私が

if post has variations, don't display short description, if simple product DO display 

ようになりますif文にいくつかのコードを追加したいが、私は区別するために、コード内の任意の方法を見つけることができません:そのページのコードはここにあります通常のシンプルな商品のポストと可変のもの(バリエーションがあるもの)の間にあります。そしてWooサイト(http://docs.woothemes.com/wc-apidocs/)でAPIドキュメントを見てみると、私はそのようなものは何も見つかりませんでした。

答えて

20

多くの心痛の後、私は、次の2つの解決策を発見した:

if($product->has_child()) { 

が、単一の製品ページ上の簡単な説明で何らかの理由:製品のループでは

を、あなたはこれを使用することができますが、私はこれを使用する必要がありました:...これは私があったように苦労した他の人を助け

global $post; 
$children = get_pages('child_of='.$post->ID); 
if(count($children) !== 0) { 

希望を

+0

ありがとうございます!これは私が致命的なエラーをトリックするのに役立ちました:) –

+1

実際に、has_childタグを単一の製品ページでも動作させる方法を考えました。特別なグローバルを追加する必要がありました。 'global $ post、$ product、$ woocommerce_loop; if($ product-> has_child()){' – Stephen

+0

あなたのソリューションをありがとう、これも私を助けてくれました。 – Ivandude

28

$product->is_type()機能を使用して製品の種類を確認してください。製品は、可変製品の使用であるかどうかを確認するには:

global $product; 

// $product->is_type($type) checks the product type, string/array $type ('simple', 'grouped', 'variable', 'external'), returns boolean 

if ($product->is_type('variable')) {} 

を文字列として、製品の内部型を返す$product->get_type()機能もあります。

関連する問題