您如何检测WordPress是否安装在子目录(而不是根目录)中?

时间:2016-02-02 作者:unfulvio

我想检查WordPress安装是否在子目录中运行。

实现这一目标的常用方法如下:https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory

这些通常涉及到更改索引文件和要求WordPress主文件,如果使用Apache,可能会更改htaccess中的规则-从我所看到的情况来看,没有设置常量

那么,如果WordPress不是从根目录运行,您将如何可靠地检测?

2 个回复
最合适的回答,由SO网友:fischi 整理而成

您需要检查siteurl是否与主URL不同:

if ( get_option( \'siteurl\' ) !== get_option( \'home\' ) ) { // whatever
如果home 是根目录的子目录,WordPress安装在另一个子目录中。例如:域。com/blog(URL)和域。com/blog/wordpress(网站URL)。

SO网友:Gkiokan

我只是遇到了同样的问题,并找到了另一种解决方法。您还可以使用wp配置中定义的常量。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