当前位置: 首页 > 知识库问答 >
问题:

如何在页签中显示woocommerce产品类别

郜俊晤
2023-03-14

我正在尝试创建一个页面与木商产品类别在标签。

我的选项卡菜单正在工作,但我需要在每个选项卡内容区域中运行一个查询到相应的类别。

但当我单击每个选项卡时,选项卡内容显示了类别中不属于当前选项卡的所有帖子。我没有得到正在出现的问题,请帮助我解决问题

下面是我的代码:

<?php
echo '<ul class="nav nav-tabs" role="tablist">';

 $args = array(
 'post_type' => 'product',
 'posts_per_page' => 100,
 'product_cat' => $category->slug,
 'hide_empty'=> 1,
 'orderby' => 'name',
 'order' => 'ASC'
 );

$categories = get_terms( 'product_cat',  $args );;

  foreach($categories as $category) {

    echo '<li><a href="#' . $category->slug.'" role="tab" data-toggle="tab">' .
    $category->slug.'('. $category->count .')</a></li>';
    $cat_name = $category->slug;

    }
    echo '</ul>';
    echo '<div class="tab-content">';
      foreach($categories as $category) {
        echo '<div class="tab-pane" id="' . $category->slug.'">';
        ?>

 <?php

     $loop = new WP_Query( $args );
     while ( $loop->have_posts() ) :
     $loop->the_post();
     ?>

            <h1><?php the_title(); ?></h1>

                   <?php
    endwhile;
   wp_reset_postdata();
   ?>


    <?php
echo '</div>';
   }

     ?>

问题是它显示每个类别的所有post。我粘在上面了..请帮帮我

共有1个答案

段干安和
2023-03-14

首先,你必须得到所有的类别,然后,你必须开始一个类别循环,在这个循环中,按类别得到所有的产品。检查下面的代码。

<?php 

function load_scripts() {
    wp_enqueue_style( 'jquery-ui-css', get_template_directory_uri().'/assets/css/jquery-ui.css', '' );
    wp_enqueue_script( 'jquery-ui-js', get_template_directory_uri().'/assets/js/jquery-ui.js', array('jquery'), time() , false);
}    

add_action('wp_enqueue_scripts', 'load_scripts');

function show_product_categories_tabs( $args ){

    $atts = shortcode_atts( array(
        '' => '',
    ), $atts, 'show_product_categories_tabs' );

    ob_start();
    ?>
        <div id="tabs">
            <ul>
                <?php
                $categories = get_terms( array(
                    'taxonomy'   => 'product_cat',
                    'hide_empty' => 1,
                ) );

                foreach ( $categories as $key => $cat ) { ?>
                    <li><a href="#<?php echo $cat->slug; ?>"><?php echo $cat->name; ?></a></li>
                <?php } ?>
            </ul>
            <?php foreach ( $categories as $key => $cat ) { 

                $args = array(
                    'post_type'      => 'product',
                    'posts_per_page' => 100,
                    'product_cat'    => $cat->slug,
                    'hide_empty'     => 1,
                    'orderby'        => 'name',
                    'order'          => 'ASC'
                );

                ?>
                <div id="<?php echo $cat->slug; ?>">
                    <?php
                    $products = new WP_Query( $args );
                    if( $products->have_posts() ) : while ( $products->have_posts() ) : $products->the_post(); ?>

                        <h1><?php the_title(); ?></h1>
                    <?php endwhile; wp_reset_postdata(); endif; ?>
                </div>
            <?php } ?>
        </div>
        
        <script>
            ( function( $ ) {
                $( "#tabs" ).tabs();
                $("#tabs ul li").delegate('a', 'click', function(e){
                    e.preventDefault();
                    return false;
                });
            } )(jQuery);
        </script>
    <?php 

    $html = ob_get_clean();
    return $html;
}
add_shortcode( 'show_product_categories_tabs', 'show_product_categories_tabs', 10, 1 );

?>

经过测试并起作用。

 类似资料:
  • 我已经生成了一个自定义的类别页面,该类别下的产品显示成功,但描述不显示在单个产品上。 请在这方面帮助我。

  • 我目前正在使用以下代码获取WooCommerce产品类别: 当前显示所有类别,但我希望仅显示子类别。 例如,如果您在“类别1”页面上,则该页面应仅显示该类别中的所有子级。 我在这里看过很多例子,但都找不到适合我需要的东西。

  • 我有一个问题与WooCommerce/WordPress模板。我以前什么都有。 我的文件中有以下代码: 这段代码为产品类别选择了我的自定义归档模板,并在主页上购物。突然,它不再起作用了。似乎WordPress不能使用自定义文件从了。单个产品页面和产品类别出于某种原因使用。我通过在我的主题文件夹上创建文件single-product.php来修复单个产品页面的问题。这个工作正常,但是我不能对WooC

  • 我似乎在为木业的某些东西而苦苦挣扎。 我已经创建了一个单一的产品页面模板,当前显示产品的特色图像在页面顶部的横幅。 但我想我得先找到分类?我不确定从这里到哪里去。 如果有任何帮助,我们将不胜感激。

  • 我想在单产品页面上显示运输类,在从可变产品中选择一个产品之后。例如:我有一辆自行车有三种颜色(红、蓝、绿): 自行车红有航运类“免费送货” 蓝色自行车的运输类别为“额外交付” 绿色自行车的运输等级为“正常交付” 我感谢你的任何想法。

  • 我想为我的一些产品显示不同的缩略图,如果它们出现在特定类别中。 我已经从特定类别中删除了当前的缩略图,我正在使用一个自定义字段为我要替换的产品提取新的缩略图,这非常有效。然而,当我尝试调用剩余产品的正常缩略图时,它不起作用-有什么想法吗?