#php #wordpress
#php #wordpress
Вопрос:
У меня установлен WordPress на:
На главной странице константа ABSPATH выводит именно это, но когда вы переходите на какую-либо другую страницу, например:
http://example.com/wordpress/contact
ABSPATH также превращается в:
http://example.com/wordpress/contact
Вопрос в том, как я могу получить фактический корень (выделен жирным шрифтом) независимо от того, на какой странице я нахожусь — без жесткого кодирования?
Я немного смущен тем, почему ABSPATH изменяет значение, разве константы не являются неизменяемыми после их определения?
Спасибо!
Ответ №1:
вы можете использовать Site_url();
… 🙂
Ответ №2:
У меня была такая же проблема на странице администратора. Вам не только нужно избегать дополнительной папки, которая вставляется, WP может быть установлен в саму папку.
Вот способ, хотя и несколько запутанный и написанный для наглядности, который вносит коррективы в эти различные элементы. Это также позволяет избежать DIRECTORY_SEPARATOR
проблем:
if (!defined(PLUGINUPDATEMGR_DOMAIN))
define("PLUGINUPDATEMGR_DOMAIN", strtolower( $_SERVER['HTTP_HOST'] ) );
$wprootbase = strtolower( site_url() );
$wprootstart = strpos( $wprootbase, PLUGINUPDATEMGR_DOMAIN )
strlen( PLUGINUPDATEMGR_DOMAIN ); // 1 to strip the leading slash/backslash
$wprootend = strlen( $wprootbase );
$wproot = substr( $wprootbase, $wprootstart, $wprootend );
echo "Local WP path = '" . $wproot . '"';
Встряхивается, не перемешивается, вывод:
Local WP path = '/wp/wordpress-3.4.2"
Конечно, YMMV =;?)
Ответ №3:
ABSPATH возвращает абсолютный путь к php-файлу на сервере, такому как /var/www / wordpress/, проверьте вашу установку wordpress.
Ответ на вашу проблему заключается в использовании:
site_url()
или
bloginfo()
Как упоминали люди выше.
Вы также могли бы использовать
$var = get_bloginfo(‘wpurl’);
Чтобы получить значение в переменной
Ответ №4:
Правильный ответ
<?php echo esc_url( home_url( '/' ) ); ?>
Вот некоторый текст, потому что у меня должно быть не менее 30 символов
Комментарии:
1. Этому вопросу более 3 лет, и на него уже есть принятый ответ. Попробуйте ответить на более актуальные вопросы, пожалуйста.
2. и это не следует путать с
get_home_path()
, который возвращает корневой путь, такой как/var/www/wordpress/