Как лучше всего подключать изображения из папки images шаблона?
Как лучше всего подключать изображения из папки images шаблона? Использовать get_bloginfo('template_url')
? Я понял, что лучше хардкодить путь к папке с изображениями, так как это уменьшает количество вызовов функций в PHP..
Какие мысли?

Я понял, что лучше жестко прописывать путь к папке с изображениями, так как это позволяет сэкономить на вызовах функций в PHP.
Я бы точно не стал беспокоиться о вызовах функций - кеш объектов WordPress отлично справится с кешированием всего этого. Вы можете определить путь как константу, если хотите, но лично я обычно не заморачиваюсь.
Я бы просто сделал:
<img src="<?php bloginfo('stylesheet_directory')"?>/images/image.png" />
я отредактировал это на
<img src="<?php bloginfo('stylesheet_directory');?>/images/image.png" />
(вышеуказанное вызывает ошибки)

Самый простой и лёгкий способ сделать это — определить уникальную переменную в файле functions.php
вашей темы.
Например:
<?php
$theme_name_images = get_bloginfo('stylesheet_directory') . '/images/';
?>
Нет необходимости использовать классы, как предлагалось в предыдущем ответе.
ПРИМЕЧАНИЕ: Следует использовать get_bloginfo вместо bloginfo(), как правильно заметил Viper007Bond.

Верно, но это самый простой способ. Я не говорил, что это самый чистый вариант.

Да, но проблема с загрязнением глобального пространства имен возникает только в том случае, если он не использует хорошее соглашение об именах для своих переменных. Например, он мог бы использовать amits_stylesheet_directory и amits_template_url или вместо "amits" использовать имя клиента.

bloginfo()
выводит данные. Вам нужна функция get_bloginfo()
, которая возвращает данные.

@Amit: Это зависит от ситуации. Большинство вызовов функций в PHP выполняются достаточно быстро, поэтому если вас беспокоит производительность, я бы не стал слишком заострять на этом внимание. Однако я понимаю ваши чувства, когда видишь все эти вызовы. Тем не менее, я бы никогда не рекомендовал жестко прописывать пути в коде.
Если вы планируете часто использовать get_bloginfo('template_url')
в своей теме, почему бы не присвоить его значение глобальной переменной в файле functions.php
, а затем обращаться к ней везде, где вам нужно? Убедитесь, что вы выбрали уникальное имя переменной, которое вряд ли вызовет конфликты, например amits_template_url
. Вот как это можно сделать в functions.php
:
global $amits_template_url;
$amits_template_url = get_bloginfo('template_url');
После этого в своей теме вы можете использовать эту переменную везде, где раньше вызывали функцию get_bloginfo('template_url')
.

Ну, это зависит от того, какой разработкой вы занимаетесь. Если вы разрабатываете плагины, вам нужно использовать функции, потому что вы никогда не можете быть уверены в структуре URL. Если вы работаете над конкретным сайтом, технически допустимо жестко прописывать URL, но это всё равно не рекомендуется, так как исключает возможность изменения структуры URL в будущем.
Когда я разрабатываю плагины или темы, я организую программу в виде класса; таким образом, я могу сохранять повторяющиеся значения как свойства объекта (например, WP URL и template_url). Это позволяет мне быстро их использовать без повторного вызова функций.
