首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WP - Woo -基于类别选择的有条件的自定义产品标签

WP - Woo -基于类别选择的有条件的自定义产品标签
EN

Stack Overflow用户
提问于 2018-01-20 12:54:53
回答 2查看 153关注 0票数 0

我有3个产品类别-类别1、类别2和CATEGOTRY-3

我还创建了3个额外的自定义分类法作为每个类别的标签,它们是TAGS-1、TAGS-2和TAGS-3。

我已经编辑了Woocommerce单一产品,并创建了一个自定义选项卡。在此选项卡中,我希望根据类别选择显示我的自定义标记。

因此,如果为产品选择了CATEGORY-1,那么我想显示标签-1,如果选择了CATEGORY-2,那么我想显示标签-2,最后一组标签也是如此。

我的代码目前看起来像这样:

代码语言:javascript
运行
复制
<?php global $post, $product, $woocommerce;

    if ( has_term( 'CATEGORY-1', 'product_cat' ) ) {

        $tags = wp_get_object_terms( $post->ID, 'TAGS-1' );

    } elseif ( has_term( 'CATEGORY-2', 'product_cat' ) ) {

        $tags = wp_get_object_terms( $post->ID, 'TAGS-2' );

    } elseif ( has_term( 'CATEGORY-3', 'product_cat' ) ) {

        $tags = wp_get_object_terms( $post->ID, 'TAGS-3' );     

    }

    return $tags;


    if ( $tags ) : ?>

        <ul id="TAGS-LIST">

            <?php foreach ( $tags as $tag ) : ?>

                <li>

                   <?php $tag_link = esc_url( get_term_link( $tag ) ); ?>

                        <a href="<?php echo $tag_link; ?>" class="TAG-CLASS">
                           <span class="TAG-TEXT-CLASS"><?php echo $tag->name; ?></span>
                        </a>
                    </li>

                <?php endforeach; ?>

            </ul><!-- #TAG-LIST -->

    <?php endif; ?>

但不幸的是,我似乎不能让它工作。根本没有显示任何输出。我哪里错了?

EN

回答 2

Stack Overflow用户

发布于 2018-01-20 13:05:06

如果不知道产品数据,就很难说出确切的原因。我会在其中放一些echo语句,试图找出一些意想不到的事情发生在哪里。例如:

代码语言:javascript
运行
复制
<?php global $post, $product, $woocommerce;

if ( has_term( 'CATEGORY-1', 'product_cat' ) ) {

    $tags = wp_get_object_terms( $post->ID, 'TAGS-1' );

} elseif ( has_term( 'CATEGORY-2', 'product_cat' ) ) {

    $tags = wp_get_object_terms( $post->ID, 'TAGS-2' );

} elseif ( has_term( 'CATEGORY-3', 'product_cat' ) ) {

    $tags = wp_get_object_terms( $post->ID, 'TAGS-3' );     

}
echo 'cat = ' . wp_get_object_terms( $post->ID,  'product_cat' );
echo 'tags1 = ' . wp_get_object_terms( $post->ID,  'TAGS-1' );
echo 'tags2 = ' . wp_get_object_terms( $post->ID,  'TAGS-2' );
echo 'tags3 = ' . wp_get_object_terms( $post->ID,  'TAGS-3' );

return $tags;


if ( $tags ) { ?>

    <ul id="TAGS-LIST">

        <?php foreach ( $tags as $tag ) : ?>

            <li>

               <?php $tag_link = esc_url( get_term_link( $tag ) ); ?>

                    <a href="<?php echo $tag_link; ?>" class="TAG-CLASS">
                       <span class="TAG-TEXT-CLASS"><?php echo $tag->name; ?></span>
                    </a>
                </li>

            <?php endforeach; ?>

        </ul><!-- #TAG-LIST -->

<?php } else { echo 'no tags present'; }  ?>

这有帮助吗?

票数 0
EN

Stack Overflow用户

发布于 2018-01-20 17:54:36

好吧,我只是走了很长一段路,但是虽然现在一切正常,但有没有办法让整个过程变得更短??

代码语言:javascript
运行
复制
<div id="product-tags-wrapper">

       <div class="products-tags-container">

          <?php global $post, $product, $woocommerce;

              if ( has_term( 'CATEGORY-1', 'product_cat' ) ) {

                  $tags = wp_get_object_terms( $post->ID, 'TAGS-1' );

                  if ( $tags ) : ?>

                  <ul id="TAGS-LIST">

                      <?php foreach ( $tags as $tag ) : ?>

                         <li>
                            <?php $tag_link = esc_url( get_term_link( $tag ) ); ?>
                            <a href="<?php echo $tag_link; ?>" class="TAG-CLASS">
                            <span class="TAG-TEXT-CLASS"><?php echo $tag->name; ?></span>
                            </a>
                         </li>

                       <?php endforeach; ?>

                   </ul><!-- #TAG-LIST -->

                   <?php endif; ?>

              <?php } elseif ( has_term( 'CATEGORY-2', 'product_cat' ) ) {

                $tags = wp_get_object_terms( $post->ID, 'TAGS-2' );

                if ( $tags ) : ?>

                  <ul id="TAGS-LIST">

                      <?php foreach ( $tags as $tag ) : ?>

                         <li>
                            <?php $tag_link = esc_url( get_term_link( $tag ) ); ?>
                            <a href="<?php echo $tag_link; ?>" class="TAG-CLASS">
                            <span class="TAG-TEXT-CLASS"><?php echo $tag->name; ?></span>
                            </a>
                         </li>

                       <?php endforeach; ?>

                   </ul><!-- #TAG-LIST -->

                   <?php endif; ?>

             <?php } elseif ( has_term( 'CATEGORY-3', 'product_cat' ) ) {

                $tags = wp_get_object_terms( $post->ID, 'TAGS-3' );

                if ( $tags ) : ?>

                  <ul id="TAGS-LIST">

                      <?php foreach ( $tags as $tag ) : ?>

                         <li>
                            <?php $tag_link = esc_url( get_term_link( $tag ) ); ?>
                            <a href="<?php echo $tag_link; ?>" class="TAG-CLASS">
                            <span class="TAG-TEXT-CLASS"><?php echo $tag->name; ?></span>
                            </a>
                         </li>

                       <?php endforeach; ?>

                   </ul><!-- #TAG-LIST -->

                   <?php endif; ?>   

              <?php } ?>    

       </div>

    </div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48352739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档