如何禁用/隐藏 woocommerce 类别页面?

Posted

技术标签:

【中文标题】如何禁用/隐藏 woocommerce 类别页面?【英文标题】:How to disable/hide woocommerce category page? 【发布时间】:2018-05-14 15:41:03 【问题描述】:

我使用以下代码隐藏了woocommerce上的单个产品页面,效果很好。任何试图访问单个产品页面的人都会被重定向到主页。

我现在想隐藏类别页面。我不需要这些,因为我使用类别短代码在其他页面上显示产品。任何人都可以帮助提供所需的代码吗?

//Removes links
add_filter( 'woocommerce_product_is_visible','product_invisible');
function product_invisible()
    return false;


//Remove single page
add_filter( 'woocommerce_register_post_type_product','hide_product_page',12,1);
function hide_product_page($args)
    $args["publicly_queryable"]=false;
    $args["public"]=false;
    return $args;

取自:How to disable/hide woocommerce single product page?

【问题讨论】:

你的 html 在哪里? @BASEERHAIDER HTML 不需要这样做。这是一个 php 问题。 【参考方案1】:

您可以尝试使用此自定义功能,当调用产品类别存档页面时,该功能将重定向到商店页面:

add_action( 'template_redirect', 'wc_redirect_to_shop');
function wc_redirect_to_shop() 
    // Only on product category archive pages (redirect to shop)
    if ( is_product_category() ) 
        wp_redirect( wc_get_page_permalink( 'shop' ) );
        exit();
    

代码进入您的活动子主题(或活动主题)的 function.php 文件或任何插件文件中。

经过测试并且可以工作

因为我不认为您想禁用产品类别功能,而只是相关的存档页面......

【讨论】:

【参考方案2】:
add_action( 'woocommerce_product_query', 'bbloomer_hide_products_category_shop' );

函数 bbloomer_hide_products_category_shop( $q )

$tax_query = (array) $q->get( 'tax_query' );

$tax_query[] = array(
       'taxonomy' => 'product_cat',
       'field' => 'slug',
       'terms' => array( 'chairs' ), // Category slug here
       'operator' => 'NOT IN'
);


  $q->set( 'tax_query', $tax_query );


请查看此示例。

【讨论】:

【参考方案3】:

如果您想完全“隐藏”页面并显示“找不到页面”(404 错误)页面,您可以将以下内容添加到您的“functions.php”文件中:

function display_404_page_instead_of_products_category_page() 
  if ( is_product_category() ) 
    global $wp_query;
    $wp_query->set_404();
    status_header(404);
  

add_action( 'wp', 'display_404_page_instead_of_products_category_page' );

如果您还想隐藏产品标签页面,只需相应地修改条件:

if ( is_product_category() || is_product_tag() ) 
...

(如果您愿意,您也可以隐藏 - 例如 - 图像浏览器页面,在这种情况下只需使用 is_attachment() 函数。)

感谢@LoicTheAztec 让我知道“is_product_category”功能。

【讨论】:

以上是关于如何禁用/隐藏 woocommerce 类别页面?的主要内容,如果未能解决你的问题,请参考以下文章

css 隐藏WooCommerce中商店/类别页面的“选择选项”按钮

php 隐藏WooCommerce中的产品类别。如果要在商店页面上隐藏产品类别计数,则只需将此代码添加到t

Woocommerce - 如何在新产品管理页面中禁用可下载和虚拟复选框?

如何根据用户角色隐藏具有给定类别的 WooCommerce 产品

使用 WooCommerce,我希望在客户单击产品价格中的“库存”时隐藏/禁用产品属性“颜色部分”并了解如何

从产品类别中排除最近查看的产品小部件中的 Woocommerce 产品