检索WordPress根目录路径?

时间:2010-03-01 08:42:36

标签: wordpress

如何在WordPress CMS中检索根目录的路径?

14 个答案:

答案 0 :(得分:119)

查看wordpress根目录中wp-config.php文件的底部,可以找到类似这样的内容:

if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

有关示例文件,请查看此处:
http://core.trac.wordpress.org/browser/trunk/wp-config-sample.php

你可以在wordpress脚本的其他地方使用这个名为ABSPATH的常量,在大多数情况下,它应该指向你的wordpress根目录。

答案 1 :(得分:39)

echo ABSPATH; //这显示了WordPress的绝对路径

ABSPATH是wp-config.php文件中定义的常量。

答案 2 :(得分:23)

注意:这个答案非常陈旧,自从WordPress登陆后,事情可能已经发生了变化。

我猜您需要从插件或主题中检测WordPress根目录。 我在FireStats中使用以下代码来检测安装了FireStats的WordPress插件的根WordPress目录。

function fs_get_wp_config_path()
{
    $base = dirname(__FILE__);
    $path = false;

    if (@file_exists(dirname(dirname($base))."/wp-config.php"))
    {
        $path = dirname(dirname($base))."/wp-config.php";
    }
    else
    if (@file_exists(dirname(dirname(dirname($base)))."/wp-config.php"))
    {
        $path = dirname(dirname(dirname($base)))."/wp-config.php";
    }
    else
        $path = false;

    if ($path != false)
    {
        $path = str_replace("\\", "/", $path);
    }
    return $path;
}

答案 3 :(得分:7)

这是一个老问题,但我有一个新的答案。这一行将返回模板中的路径::)

$wp_root_path = str_replace('/wp-content/themes', '', get_theme_root());

答案 4 :(得分:5)

此问题有2个答案Url&目录。无论哪种方式,优雅的方法是定义两个常量供以后使用。

define (ROOT_URL, get_site_url() );
define (ROOT_DIR, get_theme_root() );

答案 5 :(得分:5)

   Please try this for get the url of root file.

第一种方式:

 $path = get_home_path();
   print "Path: ".$path; 
// Return "Path: /var/www/htdocs/" or

// "Path: /var/www/htdocs/wordpress/" if it is subfolder

第二种方式:

And you can also use 

    "ABSPATH"

this constant is define in wordpress config file.

答案 6 :(得分:2)

我认为这样可以解决问题:

function get_wp_installation()
{
    $full_path = getcwd();
    $ar = explode("wp-", $full_path);
    return $ar[0];
}

答案 7 :(得分:2)

要检索路径,您可以使用函数<?php $path = get_home_path(); ?>。我不想重复已经在这里说过的内容,但我想补充一点:

如果您使用的是Windows服务器,这是WordPress安装的常见情况,但有时仍会发生,您可能会遇到路径输出问题。它可能会错过某个地方的“\”,如果您将使用这样的路径,您将收到错误。所以在输出时一定要清理路径:

<?php 

$path = get_home_path(); 
$path = wp_normalize_path ($path);

// now $path is ready to be used :)

?>

答案 8 :(得分:1)

  

主题根目录路径代码

 <?php $root_path = get_home_path(); ?> 
print "Path: ".$root_path;
  

返回“路径:/ var / www / htdocs /”或“路径:   / var / www / htdocs / wordpress /“如果是子文件夹

     

主题根路径

 $theme_root = get_theme_root();
 echo $theme_root
  

结果: - / home / user / public_html / wp-content / themes

答案 9 :(得分:1)

尝试使用此函数获取根目录路径:

get_template_directory_uri();

答案 10 :(得分:0)

您可以使用get_site_url()函数获取wordpress网站的基本网址。

有关详细信息,请访问http://codex.wordpress.org/Function_Reference/get_site_url

答案 11 :(得分:0)

如果你加载了WordPress引导程序,你可以使用get_home_path()函数获取WordPress根目录的路径。

答案 12 :(得分:0)

我喜欢@Omry Yadan的解决方案,但是我认为使用循环可以改善这种情况,以防您想继续遍历目录树直到找到wp-config.php的实际位置。当然,如果找不到它并最终到达服务器的根目录,那么所有内容都会丢失,我们将返回一个合理的值(false)。

function wp_get_web_root() {

  $base = dirname(__FILE__);
  $path = false;

  while(!$path && '/' != $base) {
    if(@file_exists(dirname($base)).'/wp-config.php') {
      $path = dirname($base);
    } else {
      $base = dirname($base);
    }
  }

  return $path;
}

答案 13 :(得分:0)

我喜欢接受的答案和@cfx 的解决方案,但它们可以进一步合并:

function base_dir () {
    $path = dirname(__FILE__);
    while (true) {
        if (file_exists($path."/wp-config.php")) {
            return $path."/";
        }
        $path = dirname($path);
    }
}

这允许您在 WordPress 未加载的文件中找到基本目录,例如动态创建的 javascript 和 css 文件。