Получить путь к корневому каталогу WordPress?

34

Как я могу получить путь к корневому каталогу в WordPress CMS?

Теги:

12 ответов

22
Лучший ответ

Я предполагаю, что вам нужно определить корень WordPress из вашего плагина или темы. Я использую следующий код в FireStats, чтобы обнаружить корневой каталог WordPress, где FireStats установлен плагин 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;
}
  • 0
    это то, что я искал ... спасибо ..
  • 0
    прохладно. просто не забудьте переименовать функцию, чтобы у нас не было конфликта имен функций, если установлены оба плагина :)
Показать ещё 13 комментариев
108

Глядя на дно вашего файла wp-config.php в корневой каталог wordpress, вы найдете что-то вроде этого:

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

Пример файла можно посмотреть здесь:
http://core.trac.wordpress.org/browser/trunk/wp-config-sample.php

Вы можете использовать эту константу, называемую ABSPATH, в других местах ваших скриптов Wordpress, и в большинстве случаев она должна указывать на ваш корневой каталог wordpress.

  • 8
    это полезно только в том случае, если wp-config.php уже включен. в некоторых случаях (в частности, из контекста ajax-вызова вашего кода плагина) это не так.
  • 14
    Вы должны использовать встроенный обработчик WordPress AJAX для управления всеми вызовами AJAX.
Показать ещё 1 комментарий
24

echo ABSPATH;//Это показывает абсолютный путь WordPress

ABSPATH - константа, определенная в файле wp-config.php.

  • 2
    Это должен быть выбранный ответ ..
  • 0
    Согласен! Просто и объективно.
6

Это старый вопрос, но у меня есть новый ответ. Эта единственная строка вернет путь внутри шаблона::)

$wp_root_path = str_replace('/wp-content/themes', '', get_theme_root());
  • 1
    Это предполагает, что шаблоны до wp-контента, что может быть не так. Вы можете переопределить имя каталога содержимого при установке WP. Как правило, это не рекомендуется, так как многие плагины делают то же самое предположение и ломаются, но такая возможность есть. Однако нет смысла продолжать повторять эти неверные предположения здесь.
  • 0
    Честно говоря, я не знал, что wp-контент можно переименовать. В этом случае вы можете изменить wp-content в моем фрагменте кода на измененное имя, и оно все равно будет работать.
Показать ещё 2 комментария
4

Есть два ответа на этот вопрос: Url и каталог. В любом случае, элегантный способ состоял бы в определении двух констант для последующего использования.

define (ROOT_URL, get_site_url() );
define (ROOT_DIR, get_theme_root() );
3
   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.
2

Я думаю, что это сделало бы трюк:

function get_wp_installation()
{
    $full_path = getcwd();
    $ar = explode("wp-", $full_path);
    return $ar[0];
}
  • 0
    это сработало. Thanx
1

Для получения пути вы можете использовать функцию <?php $path = get_home_path(); ?>. Я не хочу просто повторять то, что уже было сказано здесь, но я хочу добавить еще одну вещь:

Если вы используете сервер Windows, что является редким случаем для установки WordPress, но иногда это случается, вы можете столкнуться с проблемой с выходом пути. Он может пропустить "\" где-то, и вы получите сообщение об ошибке, если вы будете использовать такой путь. Поэтому при выводе убедитесь, что вы дезинфицируете путь:

<?php 

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

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

?>
0

Попробуйте эту функцию для получения корневого каталога:

get_template_directory_uri();
0

код корневого каталога темы

 <?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

0

Если у вас загружена загрузочная загрузка WordPress, вы можете использовать функцию get_home_path(), чтобы получить путь к корневому каталогу WordPress.

  • 0
    Это также работает без начальной загрузки?
0

Вы можете использовать функцию get_site_url(), чтобы получить базовый URL-адрес сайта wordpress.

Для получения дополнительной информации посетите http://codex.wordpress.org/Function_Reference/get_site_url

  • 0
    Вопрос спрашивает путь к файлу, а не URL
  • 0
    ОП запрашивает путь, а не URL

Ещё вопросы

Сообщество Overcoder
Наверх
Меню