Как получить URL -адрес в PHP?
-
16-10-2019 - |
Вопрос
Мне нужно получить URL -адрес моего каталога темы, чтобы ссылаться на изображение в каталоге изображений/заголовков темы. Как это делается в PHP?
Решение
Эта функция будет возвращаться URL -адрес каталога темы, чтобы вы могли использовать его в других функциях:
get_bloginfo('template_directory');
В качестве альтернативы, эта функция будет эхо URL -адрес каталога в браузере:
bloginfo('template_directory');
Итак, пример для изображения в темах images/headers
Папка будет:
<img src="<?php bloginfo('template_directory'); ?>/images/headers/image.jpg" />
Другие советы
какая @Eamann сказал, с предостережением. Эрик прав об общем подходе и о том, как функции bloginfo()
а также get_bloginfo()
Работайте и о том, как передать параметр 'template_directory'
Чтобы получить необходимую вам ценность (большинство) тем.
Однако есть предостережение и что предостережение с новым Детские темы. Анкет Если вы используете детскую тему, тогда 'template_directory'
Вероятно, это не то, что вы хотите, если не пытаетесь ссылаться на изображение, которое находится в каталоге родительских тем. Вместо этого для детских тем, которые вы, вероятно, хотите, чтобы пройти stylesheet_directory
(Я знаю, я знаю, имена не говорят вам, что они, но эй, это так, как есть!) Заимствование из ответа Эрика, используя stylesheet_directory
выглядело бы так (я сократил пример, чтобы он не упал):
<img src="<?php bloginfo('stylesheet_directory'); ?>/images/header.jpg" />
Чтобы проиллюстрировать то, что я написал быстро test.php
и запустите, чтобы увидеть, что он выводит. Сначала бегите с обычной темой, такой как Twentyten, затем бегите с детской темой:
<?php
/*
* test.php - Test the difference between Regular and Child Themes
*
*/
include "wp-load.php";
$bloginfo_params = array(
'admin_email',
'atom_url',
'charset',
'comments_atom_url',
'comments_rss2_url',
'description',
'home',
'html_type',
'language',
'name',
'pingback_url',
'rdf_url',
'rss2_url',
'rss_url',
'siteurl',
'stylesheet_directory',
'stylesheet_url',
'template_directory',
'template_url',
'text_direction',
'url',
'version',
'wpurl',
);
echo '<table border="1">';
foreach($bloginfo_params as $param) {
$info = get_bloginfo($param);
echo "<tr><th>{$param}:</th><td>{$info}</td></tr>";
}
echo '</table>';
Если вы заметите вещи, вы можете заметить, что в том, что вы можете передать гораздо больше bloginfo()
а также get_bloginfo()
; Изучите код и скриншот ниже для идей.
Глядя на скриншот, вы можете увидеть это stylesheet_directory
возвращает то же самое, что и 'template_directory'
Для обычной темы, но другой ценности, и, вероятно, ценность, которая вам нужна для детской темы.
(источник: mikeschinkel.com)
Для ясности на этом скриншоте,
wp30.dev
это домен, который работает только на моем локальном компьютере. В настоящее время это экземпляр WordPress 3.0.1 и настроен на127.0.0.1
(такой же какlocalhost
) На моем ноутбуке, и я использую его для тестирования специальных примеров, подобных этому. я использовал VirtualHostx В качестве удобства на Mac OS X, чтобы помочь мне настроить эти частные не-маршрутизации.dev
Домены, но кто -то может сделать это вручную, редактируя файл хостов компьютера и? httpd.conf файл.
Кстати, если вы не знакомы с Детские темы Где два других ответа WordPress, которые могут помочь:
Вся структура темы строится сверху в двух вариантах - template
(удерживая родительскую папку темы Namre) и stylesheet
(Удерживание детской темы папки NAMR). Если нет детской темы, это то же самое.
Иметь гибкость фильтров, а не опция доступа напрямую, есть соответственно get_template()
а также get_stylesheet()
.
Теперь единственное, что не хватает, - это объединить те, кто с темами, расположением папки. Это можно сделать с get_theme_root_uri()
и снова удобно завернут в get_template_directory_uri()
а также get_stylesheet_directory_uri()
.
[get_]bloginfo()
с template_directory
или же stylesheet_directory
Аргументы просто завершают их, и есть мало причин использовать его так. Я бы сказал, что это только сбивает с толку, когда есть аргумент в отношении каталога (обычно относится к местным путям), но возвращающиеся URL.
Sumary:
- использовать
get_template_directory_uri()
ссылаясь на только или родитель тема - использовать
get_stylesheet_directory_uri()
к только или ребенок тема
Я использую это(dirname(get_bloginfo('stylesheet_url')))