【问题标题】:How to disable/hide woocommerce single product page?如何禁用/隐藏 woocommerce 单品页面?
【发布时间】:2017-10-27 02:54:37
【问题描述】:

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

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案1】:

    您可以删除商店页面上生成的锚点,该锚点永远不会将用户重定向到单个页面。为此,您必须将此代码粘贴到您的 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
    );
    

    【讨论】:

      【解决方案2】:

      放到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;
      }
      

      【讨论】:

      • 这不仅隐藏了产品页面,而且将所有产品设置为不可见。正确答案是@Ibad Shah 的
      【解决方案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 的回答中的一些信息。

      【讨论】:

        【解决方案4】:

        单页是由 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
            }
        }
        

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

        【讨论】:

          【解决方案5】:

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

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

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

          【讨论】:

            【解决方案6】:

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

            这是我的改编自 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 ) );
              }
            }
            

            【讨论】:

              猜你喜欢
              • 2018-05-14
              • 1970-01-01
              • 1970-01-01
              • 2020-05-08
              • 2021-11-28
              • 1970-01-01
              • 2018-09-26
              • 2021-09-16
              • 1970-01-01
              相关资源
              最近更新 更多