我想知道是否有人對如何在我的網站上隱藏特定產品類別有所瞭解。意味着在我的Wordpress WooCommerce網站的「商店」,「相關產品」和「搜索」。WooCommerce 3.x - 隱藏產品類別
對於我做的「商店」頁面(它的工作)如下:
function custom_pre_get_posts_q($q) {
$tax_query = (array) $q->get('tax_query');
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array('carton'), // Don't display products in the composite category on the shop page.
'operator' => 'NOT IN'
);
$q->set('tax_query', $tax_query);
}
add_action('woocommerce_product_query', 'custom_pre_get_posts_q');
對於搜索我嘗試以下,但它不工作:
function exclude_category_from_search($query) {
if ($query->is_search) {
$cat_id = get_cat_ID('carton');
$query->set('cat', '-'.$cat_id);
}
return $query;
}
add_filter('pre_get_posts','exclude_category_from_search');
最後,對於相關產品我試過,因爲WC 3.X這似乎不建議使用以下:
function wc_remove_related_products($args)
{
if (is_product() && has_term('carton', 'product_cat'))
{
return array();
}
return $args;
}
add_filter('woocommerce_related_products_args','wc_remove_related_products', 10);
我也有我的孩子主題如下:
` <?php foreach ($related_products as $related_product) : ?>
<?php
$post_object = get_post($related_product->get_id());
setup_postdata($GLOBALS['post'] =& $post_object);
wc_get_template_part('content', 'product'); ?>
<?php endforeach; ?>`
而且我知道我們可以用我在其他類中使用的這部分代碼隱藏產品類別:
global $post;
$terms = wp_get_post_terms($post->ID, 'product_cat');
foreach ($terms as $term) $categories[] = $term->slug;
if (in_array('children', $categories)) {
任何人都有關於如何使用新版本的WoomCommerce做到這一點的想法? 我已經做了大量的研究,但是從這個新版本開始,所有看起來都是不贊成的答案。 PS:我需要保留這個類別,因爲我使用它來創建一些複合產品,所以只隱藏這些產品但不刪除它們。
乾杯
嗨,你有答案嗎?我看起來一樣。 – mikesneider
嗨@mikesneider我已經發布了一個答案。是的,我終於明白了這一點;) 如果有任何問題,隨時問和大拇指,如果它適合你! – bkseen