首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Woocommerce重定向product_name -> product_cat/product_name

Woocommerce重定向product_name -> product_cat/product_name
EN

WordPress Development用户
提问于 2020-08-17 18:47:19
回答 1查看 161关注 0票数 0

首先,产品url是/product_name。但老板希望将其更改为product/product。其中product_cat是主要类别。因此插件Premmerce已经安装,新的url是正确的。但是,Google已经用以前的url索引了产品页面。因此,我需要将所有旧的url重定向到新的。例如,已经安装了http://chaiseguy.kamilane.odns.fr/abstrait-2/ to http://chaiseguy.kamilane.odns.fr/t-shirts/abstrait-2/插件重定向,所以我尝试了一个新的重定向: /%product_name%到/%C1_cat%/%C1_name%,但它不起作用。

因此,我尝试使用.htaccess添加:重定向301 https://chaiseguy.kamilane.odns.fr/%product_姓名% https://chaiseguy.kamilane.odns.fr/%product_cat%/%产品_姓名% -它不工作:-(

我该怎么办?

非常感谢你的帮助!

EN

回答 1

WordPress Development用户

发布于 2020-08-17 19:44:28

您可以尝试template_redirect操作。检查当前请求是否为单个产品。@见https://codex.wordpress.org/Plugin_API/行动_参考/模板_重定向

代码语言:javascript
复制
add_action( 'template_redirect', function() {

    //= bail early
    if( !is_404() ) return;

    //= get product name from url
    $product_name = get_query_var( 'pagename' );

    //= bail
    if( empty( $product_name ) ) return;

    //= lookup product by name
    $product = get_page_by_path( $product_name, OBJECT, 'product' );

    //= bail
    if( is_null( $product ) ) return;

    //= redirect
    wp_redirect( get_the_permalink( $product->ID ) );
    exit;

} );

注1此外,您可能需要检查query_var "product_cat“是否为空。否则,您可能会有一个无限循环。

注2尝试添加一些逻辑(如果不存在,则添加逻辑,否则跳过逻辑)将重定向传递给重定向插件。上面的想法将在每一个请求中运行。如果它只是一个重定向坐在重定向插件,它将是更快。

希望这能让你走上正轨。对不起,我没有确切的解决办法。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/373195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档