@LurkingMong

Как загрузить картинки WordPress не меняя пути в коде?

При посадке верстки на WordPress картинки не подгружаются должным образом, потому что не состоят в медиатеке WP. Можно ли как-то сделать так, чтобы картинки грузились по URL, который указан в коде? Я знаю как добавлять изображения в медиатеку и потом загружать их оттуда, но сайт крупный и изображений много, это займет очень много времени
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ответы на вопрос 2
AntonLitvinenko
@AntonLitvinenko
HTML coder
<img src="<?php echo get_template_directory_uri() ?>/assets/img/logo.png" alt="<?php _e( 'Какойто альт', 'ваш_текстдомен' ) ?>">

Только ж вы получите статические картинки, которые не изменить из админки
Ответ написан
solidcreature
@solidcreature
WordPress-митапы в Москве (vk.com/wpmeetup)
Здравствуйте, есть 2 варианта ответа на ваш вопрос.

Первый вариант решения неправильный, но в точности отвечает на ваш вопрос. Допустим у вас все картинки расположены в папке images и в верстке прописаны относительный пути <img src="/images/image_1.jpg">, тогда можно разместить папку images в корне сайта и, по идее, должно заработать. Важно, это очень кривой способ, нет адекватных причин к нему прибегать.

Второй вариант. Разделить картинки на 2 большие категории. Первая категория -- элементы верстки и дизайна, то без чего сайт не будет соответствовать дизайну (иконки, графические элементы и т.д.). Такие картинки -- нужно перенести в папку images вашей темы. Картинки, которые относятся к контенту -- придется загружать в медиа-библиотеку.

Коллега выше предложил использовать функцию get_template_directory_uri(), c этой функцией все хорошо, но код получается громоздким, я обычно делаю обертку, добавляя следующую функцию в functions.php:
function theme_image($image) {
  $image_url = get_template_directory_uri() . '/images/' . $image;
  echo  $image_url;
}

Код в верстке тогда становится лаконичным:
<img src="<?php theme_image('image_1.jpg'); ?>">
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы