web-dev-qa-db-ja.com

WordPressが(rootではなく)サブディレクトリにインストールされているかどうかをどのように検出しますか?

WordPressのインストールがサブディレクトリから行われているかどうか確認したいのですが。

これを達成するための一般的な方法はここにリストされています: https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory

これらは通常、インデックスファイルを変更し、そこからWordPressのメインファイルを要求することを含みます。おそらくApacheを使用している場合はhtaccessのルールを変更するでしょう。

では、WordPressがディレクトリルートから実行されていない場合、どのようにして確実に検出するのでしょうか。

2
unfulvio

Siteurlが自宅のURLと異なるかどうかを確認する必要があります。

if ( get_option( 'siteurl' ) !== get_option( 'home' ) ) { // whatever

これは、homeがルートのサブディレクトリで、WordPressがさらに別のサブディレクトリにインストールされている場合にも機能します。たとえば、domain.com/blog(URL)やdomain.com/blog/wordpress(siteurl)などです。

3
fischi

私はちょうど同じ質問に出くわし、それを理解するための別の方法を見つけました。 wp-config.phpファイルから定義された定数を使うこともできます。 SUBDOMAIN_INSTALL がキーになります。

マルチサイト設定のwp-configの抜粋例は次のようになります。

define('WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'intern.cc.dev');
define('PATH_CURRENT_SITE', '/');

あなたのコードで

// only run condition, when we are in MS
if( is_multisite() ):

   // check for subfolder installation flag
   if( SUBDOMAIN_INSTALL === false):

      // optional, check if you are on the home WP or a sub WP
      if( get_current_blog_id() > 1):

         // do whatever you need to to here


      endif; // end blog id check
   endif; // end subfolder installation 
endif; // end multisite check
0
Gkiokan