-
作者帖子
-
我使用的 translatepress 实现的多语言,目前希望将部分产品分类重定向到页面中,并且这个重定向对所有语言都生效,所以希望通过 ID 来重定向,请问重定向的代码该如何写,不如将 tag=15 的分类重定向到到 post=40 的页面,并且对于其他语言的所有这个页面都会生效。
你可以使用以下代码将 tag=15 的分类重定向到 post=40 的页面:
function custom_category_redirect() { if ( is_category( 15 ) ) { wp_redirect( get_permalink( 40 ) ); exit; } } add_action( 'template_redirect', 'custom_category_redirect' );
这段代码将在用户访问 tag=15 的分类页面时,自动重定向到 post=40 的页面。请确保将这段代码放在你的主题的 functions.php 文件中。这个重定向将对所有语言都生效,因为它是基于 WordPress 的页面和分类 ID 来实现的。
以上由壳壳虫自动解答供参考,您可以继续跟帖或等待人工回复。
最好是通过重定向插件来实现,WordPress 不管是文章还是分类如果重定向过多会容易循环卡死,我们目前站点也是在经历比较严重的性能问题。
重定向插件比较好用的可以试试
我们之前做旧站数据 URL 重定向也是用的这个插件,比较灵活,可以自定义规则
好的这个插件,测试一下,重定向插件,主要问题就是对于多语言的支持未知,而且绝大部分支持很差,比如一个分类重定向到一个页面,那么在主语言英文中功能正常,切换到德语,那么大概率要么不生效,要么还是重定向到了英文页面。我们的应用场景来说,语言比较多 (10 来种) 就意味着如果是基于 URL 的重定向,那么是一个比较大的工程。目前通过 ID 现了重定向观察一段时间再说!
function custom_category_redirect() {
$tag_id = get_queried_object_id();
if($tag_id){
if ( $tag_id == 15 || $tag_id == 21 || $tag_id == 22 || $tag_id == 23) {
wp_redirect( get_permalink( 40 ) );
exit;
}
if ( $tag_id == 24) {
wp_redirect( get_permalink( 1942 ) );
exit;
}
if ( $tag_id == 25) {
wp_redirect( get_permalink( 2497 ) );
exit;
}
if ( $tag_id == 36) {
wp_redirect( get_permalink( 2505 ) );
exit;
}
if ( $tag_id == 35) {
wp_redirect( get_permalink( 2504 ) );
exit;
}
if ( $tag_id == 42) {
wp_redirect( get_permalink( 2503 ) );
exit;
}
if ( $tag_id == 41) {
wp_redirect( get_permalink( 2502 ) );
exit;
}
if ( $tag_id == 50) {
wp_redirect( get_permalink( 2501 ) );
exit;
}
}}
add_action( ‘template_redirect’, ‘custom_category_redirect’ );这种写死 ID 的重定向出现问题的话很难排查判断吧。
-
作者帖子
- 哎呀,回复话题必需登录。