1

わかりました、wordpress ループに表示される woocommerce 製品のカテゴリ名を取得しようとしています。これを試したループ内でも、li のクラスとして使用します。

 <div id="isocontent" class="products">
                <ul><?php while (have_posts()) : the_post(); ?>


                        <li class="<?php echo $product->get_categories(); ?> box">
                            <a href="<?php the_permalink(); ?>"><?php echo the_post_thumbnail(); ?></a>
                            <p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
                            <a href="<?php the_permalink(); ?>"><span href="<?php the_permalink(); ?> " class="amount price" data-original="<?php echo get_woocommerce_currency(); ?><?php echo $product->get_price(); ?>" data-price="<?php echo $product->get_price(); ?>" title="Original price: <?php echo $product->get_price(); ?>"><?php echo get_woocommerce_currency(); ?><?php echo $product->get_price(); ?></span></a>
                            <a href="<?php the_permalink(); ?>?add-to-cart=<?php echo $post->ID ?>" class="pbutton">Add to Cart</a>
                        </li>
                    <?php endwhile; ?>
                </ul>
            </div> 

これは私がクラスを取得しようとしている部分です:

<li class="<?php echo $product->get_categories(); ?> box">

しかし、それはこれを出力するだけです:

<li class="&lt;a href=" http:="" localhost.no="" fanny="" kategori="" interior-sv="" "="" rel="tag">

これはカテゴリを取得しますが、ループを壊すマークアップをねじ込みます。私もこれを試しました:

<li <?php post_class('box'); ?>

ただし、woocommerce は分類法を使用するため、タグを取得しますが、製品カテゴリは取得しません。どんな助けでも大歓迎ですクリスよろしく

4

1 に答える 1

4

単一の呼び出しを行うほど簡単ではありませんget_categories()。製品カテゴリの HTML 表現を表示するように設計されています。製品カテゴリは実際にはカスタム分類であるため、それget_the_terms()を取得するには使用する必要があります.

global $post;
$terms = get_the_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ){
    $category_id = $term->term_id;
    $category_name = $term->name;
    $category_slug = $term->slug;
    break; 
}
于 2013-04-16T16:46:54.127 に答える