如何禁用/隐藏woocommerce单品页面?

时间:2017-05-26 09:07:40

标签: wordpress woocommerce

我想在我的wordpress-woocommerce网站上隐藏单个产品详情页面。如何在不破坏woocommerce功能的情况下实现这一目标?

7 个答案:

答案 0 :(得分:10)

您可以删除在商店页面上生成的锚点,该锚点永远不会将用户重定向到单页面。为此,您必须将此代码粘贴到functions.php文件中。

remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 );

此代码会删除链接,但之后您还要删除锚定结束标记,它不会破坏您的HTML

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );

答案 1 :(得分:9)

将它放在functions.php

//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;
}

答案 2 :(得分:3)

如果产品页面使用is_product()辅助功能

,您可以注册一个返回404的挂钩
function prevent_access_to_product_page(){
    global $post;
    if ( is_product() ) {
        global $wp_query;
        $wp_query->set_404();
        status_header(404);
    }
}

add_action('wp','prevent_access_to_product_page');

解决方案经过测试并正常运行。

注意:解决方案基于某种方式来自@ ale的回答。

答案 3 :(得分:1)

单页是WordPress提供的,无法禁用它。但有一些方法可以阻止访问单个产品页面。

第一个是编辑您的商店(产品 - 存档)模板,并删除您有单页链接的所有地方。

第二个是检查每个页面加载,如果页面是单个产品页面并将用户重定向到您想要的任何位置:

add_action('init','prevent_access_to_product_page');
function prevent_access_to_product_page(){
    if ( is_product() ) {
        wp_redirect( site_url() );//will redirect to home page
    }
}

您可以将此代码包含在child-themes目录的functions.php文件中。请记住,我还没有测试过代码。

答案 4 :(得分:0)

remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 );
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );

答案 5 :(得分:0)

在大多数情况下,取消点击产品页面链接的可能性将有效地“禁止”进入产品页面。您可以使用 CSS 来实现(为您的主题调整类):

.product-title a,
.product-container a,
.product-details a {
    pointer-events: none;
}

注意:这不会删除页面本身,但会禁止点击访问。要禁止通过直接链接访问页面,请使用一些提供的重定向解决方案。

答案 6 :(得分:0)

老问题,但没有一个答案对我有用。

这是我的改编自 Ale'sMhdSyrwan's

add_action('wp','prevent_access_to_product_page');
function prevent_access_to_product_page(){
  if ( is_product() ) {
    wp_redirect( get_permalink( 269 ) );
  }
}