php - 在 WooCommerce 商店页面中隐藏特定类别
问题描述
我在 WooCommerce 中有一个商店页面,我正在使用它来覆盖“archive-product.php”
我的目标是在一个嵌套中显示我的类别,每个产品类别上方都有一个标题。这实现了这一点,除了我不希望显示所有类别。理想情况下,我的三个产品类别中的两个将被列出,而第三个则保持隐藏。
老实说,我是一名平面设计师,我的大部分知识都保留在 CSS 和 HTML 中......所以任何帮助将不胜感激。
谢谢!
<?php
/**
* woocommerce_before_main_content hook.
*
* @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
* @hooked woocommerce_breadcrumb - 20
*/
do_action( 'woocommerce_before_main_content' );
?>
<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>
<h1 class="page-title"><?php woocommerce_page_title(); ?></h1>
<?php endif; ?>
<?php
/**
* woocommerce_archive_description hook.
*
* @hooked woocommerce_taxonomy_archive_description - 10
* @hooked woocommerce_product_archive_description - 10
*/
do_action( 'woocommerce_archive_description' );
?>
<?php if ( have_posts() ) : ?>
<?php
/**
* woocommerce_before_shop_loop hook.
*
* @hooked woocommerce_result_count - 20
* @hooked woocommerce_catalog_ordering - 30
*/
do_action( 'woocommerce_before_shop_loop' );
/* Category - SubCategory START */
$term = get_queried_object();
$parent_id = empty( $term->term_id ) ? 0 : $term->term_id;
$product_categories = get_categories( array( 'taxonomy' => 'product_cat', 'child_of' => $parent_id) );
$i = 1;
foreach ($product_categories as $product_category) {
echo '<h2>'.$product_category->name.'</h2>';
woocommerce_product_loop_start(); //open ul
$args = array(
'posts_per_page' => -1,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $product_category->slug
),
),
'post_type' => 'product',
'orderby' => 'menu_order',
'order' => 'asc',
);
$cat_query = new WP_Query( $args );
while ( $cat_query->have_posts() ) : $cat_query->the_post();
wc_get_template_part( 'content', 'product' );
endwhile; // end of the loop.
wp_reset_postdata();
woocommerce_product_loop_end(); //close ul
if ( $i < count($product_categories) )
echo '<div class="content-seperator"></div>';
$i++;
}//foreach
/* Category - SubCategory END */
/**
* woocommerce_after_shop_loop hook.
*
* @hooked woocommerce_pagination - 10
*/
do_action( 'woocommerce_after_shop_loop' );
?>
<?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>
<?php wc_get_template( 'loop/no-products-found.php' ); ?>
<?php endif; ?>
<?php
/**
* woocommerce_after_main_content hook.
*
* @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
*/
do_action( 'woocommerce_after_main_content' );
?>
<?php
/**
* woocommerce_sidebar hook.
*
* @hooked woocommerce_get_sidebar - 10
*/
do_action( 'woocommerce_sidebar' );
?>
解决方案
修改
$product_categories = get_categories( array( 'taxonomy' => 'product_cat', 'child_of' => $parent_id) );
和:
$excludedCats = array(23,12,55); //Where 23,12 and 55 are category ids you want to leave out
$excludedCats = "23,12,55" //This works too
$product_categories = get_categories( array( 'taxonomy' => 'product_cat', 'child_of' => $parent_id, 'exclude' => $excludedCats) );
推荐阅读
- php - 使用 FPDF 库生成 PDF 的问题
- java - 如何使图像循环到屏幕的另一侧
- php - laravel 5.4 中会话超时时自动重定向到登录页面
- c++ - 如何强制编译器将“4 向量”包装类作为单个 XMM 寄存器传递?
- php - 在另一个函数中使用数组数据
- powershell - 使用powershell递归更改lastwritedate
- django - 如何为 SMTP 配置 Django 和 G Suite
- html - Flexbox 调整元素宽度以不留空白
- ios - swift parse json - 无法读取数据,因为它的格式不正确
- java - 正则表达式从路径获取带或不带扩展名的文件名