Redirect Situs Utama ke Subsite di Multisite Wordpress

11

Saya memiliki multi-situs wordpress, saya ingin mengarahkan ulang situs utama ke salah satu sub-situs tetapi pengalihan dalam .htacecss memberikan kesalahan. Apakah ada cara untuk mengalihkan situs utama ke sub-situsnya. Itu terlihat tidak mungkin tetapi saya bukan ahli wordpress jadi hanya memverifikasi.

Arahan ulang harus seperti

redirect 301 www.example.com/main-site www.example.com/main-site/sub-site

Atau jika ada cara lain untuk melakukan itu?

Toqeer
sumber

Jawaban:

10

Anda dapat menggunakan parse_requesttindakan untuk mencapai ini. Cukup aktifkan plugin ini di blog utama Anda. Tempatkan kode berikut dalam file .php dan unggah ke direktori plugins Anda.

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

Beri tahu saya jika Anda memiliki pertanyaan.

Brian Fegter
sumber
+1 Dan ini dia lagi sama bagusnya dengan dua liner ;)
kaiser
1
@Toqeer Anda harus menghadiahkan hadiah. Tidak akan mendapatkannya kembali lagi. ;)
kaiser
Baru saja diberikan, saya pikir itu akan diberikan secara otomatis :)
Toqeer
Saya mencoba sekarang dengan versi WordPress terbaru tetapi tidak berfungsi. Apakah kamu punya ide?
Pengguna
1
Saya menemukan solusi untuk itu, alih-alih memeriksa permintaan $ wp->, tanyakan saja fungsi is_main_site ();
Maor Barazany
3

Tampaknya yang $wp->requestdisarankan dalam balasan di atas selalu berupa string kosong (dalam WPMS 4.5.2), jadi alih-alih Anda dapat memeriksanya is_main_site();.

Maor Barazany
sumber
2

Jawaban yang diterima tidak berfungsi untuk Wordpress 4.9.8. Berikut adalah kode yang diperbarui dan diuji. Letakkan ini di dalam function.php dari tema aktif.

<?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' );
?>
sharulhafiz
sumber