Chuyển hướng trang chính đến trang con trong Wordpress nhiều trang


11

Tôi có wordpress nhiều trang, tôi muốn chuyển hướng trang chính đến một trong những trang phụ nhưng chuyển hướng trong .htacecss bị lỗi. Có cách nào để chuyển hướng một trang web chính đến trang web phụ của nó. Điều đó có vẻ không thể nhưng tôi không phải là một chuyên gia wordpress nên chỉ cần xác minh.

Chuyển hướng nên như thế nào

chuyển hướng 301 www.example.com/main-site www.example.com/main-site/sub-site

Hoặc nếu có cách nào khác để làm điều đó?

Câu trả lời:


10

Bạn có thể sử dụng parse_requesthành động để thực hiện điều này. Đơn giản chỉ cần kích hoạt plugin này trên blog chính của bạn. Đặt đoạn mã sau vào tệp .php và tải nó lên thư mục plugin của bạn.

/*
Plugin Name: Redirect Main Site To Sub-Site
Description: Redirect 'main-site' to 'main-site/sub-site/'
Version: 0.1
Author: WPSE
Author URI: http://wordpress.stackexchange.com
License: GPL2
*/

add_action('parse_request', 'redirect_to_sub_site');
function redirect_to_sub_site(){
    global $wp;

    #Sniff requests for a specific slug
    if('main-site' === $wp->request){

        #The URL to redirect TO
        $url = 'http://www.example.com/main-site/sub-site/';

        #Let WordPress handle the redirect - the second parameter is obviously the status
        wp_redirect($url, 301);

        #It's important to exit, otherwise wp_redirect won't work properly
        exit;
    }
}

Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi.



1
@Toqeer Bạn nên thưởng tiền thưởng. Sẽ không nhận được nó trở lại anway. ;)
kaiser

Chỉ cần trao giải, tôi nghĩ rằng nó sẽ được trao tự động :)
Toqeer

Tôi đã thử ngay bây giờ với phiên bản WordPress mới nhất nhưng nó không hoạt động. Bạn còn ý kiến ​​nào không?
Người dùng

1
Tôi đã tìm thấy một giải pháp cho điều đó, thay vì kiểm tra yêu cầu $ wp->, chỉ cần kiểm tra với hàm is_main_site ();
Maor Barazany

3

Dường như $wp->requestcâu trả lời được đề xuất trong phần trả lời ở trên luôn là một chuỗi rỗng (trong WPMS 4.5.2), vì vậy thay vào đó bạn có thể kiểm tra điều này is_main_site();.


2

Câu trả lời được chấp nhận không hoạt động cho Wordpress 4.9.8. Dưới đây là mã cập nhật và thử nghiệm. Đặt cái này bên trong function.php của chủ đề đang hoạt động.

<?php
function wpse66115_redirect_to_sub_site() {
  if ( is_main_site() ) {
    exit( wp_redirect( 'http://www.example.com/main-site/sub-site/', 301 ) );
  }
}
add_action( 'parse_request', 'wpse66115_redirect_to_sub_site' );
?>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.