Настройка пользовательского изображения держателя места в теме ветки/древесины

#php #wordpress #twig #custom-wordpress-pages #timber

Вопрос:

Итак, у меня возникла twig/timber проблема, из-за которой мне трудно получить набор изображений, вот что у меня есть до сих пор:

 {% set defaultimg = site.theme.link ~ '/images/placeimage.png' %}
 

а потом в моем коде у меня есть:

 <img src="{{ post.thumbnail.src | default(defaultimg) | resize(360, 240)}}" class="card-img-top">
 

post.thumbnail.src извлекает изображения просто отлично, но если к сообщению не прикреплен Img, я хочу defaultimg , чтобы изображение было извлечено из папки изображений пользовательских тем. Но в настоящее время это выводит действительно ошибочный URL-адрес:

 <img src="https://toolcart.local/wp-contentC:UsersUserLocal Sitestoolcartapppublicwp-contentthemestoolcart-themeimages/placeimage-360x240-c-default.png" class="card-img-top">
 

Однако a {{defaultimg}} правильно выводит URL-адрес изображения.

 https://toolcart.local/wp-content/themes/toolcart-theme/images/placeimage.png
 

Я не уверен, что делать дальше?

Ответ №1:

Это проблема с twig/timber тем, как определяются пути!!! Странный способ делать вещи, который добавляет ненужную сложность проекту.

При этом, согласно их документации, вы можете добавить фильтр, вызываемый relative в конце вашей defaultimg переменной, который преобразует абсолютный URL-адрес в относительный, который в конечном итоге выводит правильный путь к вашему изображению по умолчанию.

Таким образом, ваш код будет примерно таким:

  • Определение пути к изображению по умолчанию:
 {% set defaultimg = Image(site.theme.link ~ '/images/placeimage.png') | relative %}
 

записка:
| relative Фильтр здесь сделает свое дело.

  • Вызов его в атрибуте источника изображения:
 <img src="{{ post.thumbnail.src | default(defaultimg) | resize(360, 240)}}" class="card-img-top">
 

Я только что протестировал код, и он отлично работал! Дай мне знать, сможешь ли ты заставить его тоже работать!

Комментарии:

1. Я хочу поблагодарить вас за то, что нашли время объяснить мне это. У меня действительно есть следующий вопрос: Кажется, что иногда | resize(360, 240) просто полностью перепутывает URL-адрес изображения по умолчанию, например, как в этом примере: ImageLink у вас случайно не возникнет каких-либо мыслей о том, почему это произойдет?

2. Нет проблем! С удовольствием помогу! Убедитесь, что используете код, который я вам предоставил. Код, который я предоставил, отлично работает с моей стороны. Вот снимок экрана . И featured image то и custom placeholder image другое и отлично работает!