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

时间:2017-11-30 16:24:50

标签: php wordpress woocommerce url-redirection categories

我使用以下代码隐藏了woocommerce上的单个产品页面,这些页面完美无缺。任何试图访问单个产品页面的人都会被重定向到主页。

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

$TempContentArray = $NULL
$TempContent = $NULL
$TempContent = Get-Content C:\_Scratch\import.csv
Foreach ($Line in $TempContent)
{
    $TempContentArray += $Line.ToUpper()
}
$TempContentArray | C:\_scratch\export.csv
$Init = Import-Csv C:\_Scratch\export.csv

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

3 个答案:

答案 0 :(得分:0)

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

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文件中或任何插件文件中。

经过测试和工作

  

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

答案 1 :(得分:0)

add_action( 'woocommerce_product_query', 'bbloomer_hide_products_category_shop' );

function 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 );

}

请查看此示例。

答案 2 :(得分:0)

如果您想完全“隐藏”页面并显示“找不到页面”(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”功能。