【问题标题】:How to redirect WooCommerce shop to a custom shop page如何将 WooCommerce 商店重定向到自定义商店页面
【发布时间】:2026-02-07 22:25:01
【问题描述】:

我有一个基于 Ample Business 主题的网站,其中安装并激活了 Woocommerce 插件。我们创建了一个自定义商店页面,并希望将 Woocommerce /shop/ URL 重定向到新页面。我已经阅读了几篇规定答案的帖子,但似乎没有一个有效。页面不会重定向。

我尝试过的:

在子主题的functions.php文件中添加如下代码:

    // Redirect WooCommerce Shop URL 
    function wpc_shop_url_redirect() 
    { if( is_shop() ){ 
    wp_redirect( home_url( '/shop2/' ) ); // Assign custom internal page here exit(); } } 
    add_action( 'template_redirect', 'wpc_shop_url_redirect' );

尝试通过 .htaccess 进行标准 301 重定向。

这些解决方案不起作用,我不能简单地为 archive_product.php 创建一个新的模板文件,因为所有 Woocommerce 文件都位于插件文件夹中,而不是主题文件夹中。我不希望每次更新都覆盖文件。

任何建议将不胜感激。

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    首先,创建一个shop2 页面。然后创建Page Templates,然后将WordPress页面模板分配给页面shop2页面。

    下面是示例模板文件的样子。你可以给这个文件名,比如template-shop2.php

    <?php 
    
        /* Template Name: Example Template */ 
    
        get_header();
    
        // your product display code.
    
        get_footer();
    
    ?>
    

    然后您可以使用您的template_redirect 并重定向到您的shop2。此代码将进入您的活动主题 functions.php 文件。

    function custom_shop_page_redirect() {
        if( is_shop() ){
            wp_redirect( home_url( '/shop2/' ) );
            exit();
        }
    }
    add_action( 'template_redirect', 'custom_shop_page_redirect' );
    

    【讨论】:

      【解决方案2】:

      我想通了。问题是我无意中激活了父主题并正在编辑子主题的 functions.php 文件。在functions.php中添加以下代码成功重定向商店页面:

      // Redirect WooCommerce Shop URL
      function wpc_shop_url_redirect() {
          if( is_shop() ){
              wp_redirect( home_url( '/store/' ) ); // Assign custom internal page here
              exit();
          }
      }
      add_action( 'template_redirect', 'wpc_shop_url_redirect' );
      

      【讨论】: