メインサイトをマルチサイトWordpressのサブサイトにリダイレクト


11

マルチサイトワードプレスを使用しています。メインサイトをサブサイトの1つにリダイレクトしたいのですが、.htacecssでリダイレクトするとエラーが発生します。メインサイトをサブサイトにリダイレクトする方法はありますか?それは不可能に見えますが、私はワードプレスの専門家ではないので、確認しています。

リダイレクトは次のようにする必要があります

リダイレクト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そして、これは素敵な2ライナーとして再びここにあります;)
kaiser

1
@Toqeer賞金を授与する必要があります。取り戻しません。;)
カイザー2012

授与されたばかりで、自動的に授与されると思いました:)
Toqeer 2012

最新のWordPressバージョンで試してみましたが、機能しません。何か考えはありますか?
ユーザー

1
$ wp-> requestをチェックする代わりに、関数is_main_site()でチェックするだけで解決策を見つけました。
Maor Barazany 16年

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.