เปลี่ยนเส้นทางไซต์หลักไปยังไซต์ย่อยใน Multisite Wordpress


11

ฉันมีเวิร์ดเพรสหลายไซต์ฉันต้องการเปลี่ยนเส้นทางไซต์หลักไปยังไซต์ย่อยหนึ่งไซต์ แต่การเปลี่ยนเส้นทางใน. htacecss ทำให้เกิดข้อผิดพลาด มีวิธีใดบ้างในการเปลี่ยนเส้นทางไซต์หลักไปยังไซต์ย่อย ดูเหมือนว่าจะเป็นไปไม่ได้ แต่ฉันไม่ใช่ผู้เชี่ยวชาญ WordPress ดังนั้นเพียงตรวจสอบ

การเปลี่ยนเส้นทางควรเป็นเช่นนั้น

เปลี่ยนเส้นทาง 301 www.example.com/main-site www.example.com/main-site/sub-site

หรือหากมีวิธีอื่นที่จะทำเช่นนั้น?

คำตอบ:


10

คุณสามารถใช้การparse_requestกระทำเพื่อทำสิ่งนี้ให้สำเร็จ เพียงเปิดใช้งานปลั๊กอินนี้ในบล็อกหลักของคุณ วางรหัสต่อไปนี้ในไฟล์. php และอัปโหลดไปยังไดเรกทอรีปลั๊กอินของคุณ

/*
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;
    }
}

แจ้งให้เราทราบหากคุณมีคำถามใด ๆ



1
@ Toqeer คุณควรมอบรางวัลให้ จะไม่ได้รับมันกลับมาอีกแล้ว ;)
ไกเซอร์

เพิ่งได้รับรางวัลฉันคิดว่าจะได้รับรางวัลโดยอัตโนมัติ :)
Toqeer

ฉันลองตอนนี้ด้วยรุ่น WordPress ล่าสุด แต่มันไม่ทำงาน คุณมีความคิดใด ๆ
ผู้ใช้

1
ฉันพบวิธีแก้ปัญหาสำหรับเรื่องนั้นแทนที่จะตรวจสอบคำขอ $ wp-> เพียงตรวจสอบกับฟังก์ชั่น is_main_site ();
Maor Barazany

3

ปรากฏว่าสิ่ง$wp->requestที่แนะนำในการตอบกลับด้านบนนั้นเป็นสตริงว่างเสมอ (ใน WPMS 4.5.2) ดังนั้นคุณสามารถตรวจสอบกับสิ่งนี้is_main_site();ได้


2

คำตอบที่ยอมรับไม่สามารถใช้งานได้กับ Wordpress 4.9.8 นี่คือรหัสที่อัปเดตและทดสอบแล้ว ใส่สิ่งนี้ไว้ข้างใน function.php ของธีมที่ใช้งานอยู่

<?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' );
?>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.