-
作者帖子
-
我使用的 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 的重定向出現問題的話很難排查判斷吧。
-
作者帖子
- 哎呀,回覆話題必需登錄。