Вопрос

Мне нужно получить 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' Для обычной темы, но другой ценности, и, вероятно, ценность, которая вам нужна для детской темы.

The return values of get_bloginfo() with and without a Child Theme in WordPress
(источник: 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')))

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top