首先,产品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%/%产品_姓名% -它不工作:-(
我该怎么办?
非常感谢你的帮助!
发布于 2020-08-17 19:44:28
您可以尝试template_redirect操作。检查当前请求是否为单个产品。@见https://codex.wordpress.org/Plugin_API/行动_参考/模板_重定向
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尝试添加一些逻辑(如果不存在,则添加逻辑,否则跳过逻辑)将重定向传递给重定向插件。上面的想法将在每一个请求中运行。如果它只是一个重定向坐在重定向插件,它将是更快。
希望这能让你走上正轨。对不起,我没有确切的解决办法。
https://wordpress.stackexchange.com/questions/373195
复制相似问题