在树枝/木材主题中设置自定义占位符图像

Shr*_*kCo 8 php wordpress custom-wordpress-pages twig timber

所以我遇到了一个twig/timber问题,我很难获得地点图像集,这是我到目前为止所遇到的问题:

{% set defaultimg = site.theme.link ~ '/images/placeimage.png' %}
Run Code Online (Sandbox Code Playgroud)

然后在我的代码中我有:

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

post.thumbnail.src 可以很好地提取图像,但如果帖子中没有附加特色 Img,我希望defaultimg从我的自定义主题图像文件夹中提取图像。但目前这输出了一个非常错误的网址:

<img src="https://toolcart.local/wp-contentC:\Users\User\Local Sites\toolcart\app\public\wp-content\themes\toolcart-theme\images/placeimage-360x240-c-default.png" class="card-img-top">
Run Code Online (Sandbox Code Playgroud)

但是 a{{defaultimg}}正确输出图像 url。

https://toolcart.local/wp-content/themes/toolcart-theme/images/placeimage.png
Run Code Online (Sandbox Code Playgroud)

我不确定接下来要尝试什么?

Ruv*_*vee 7

这是定义路径的方式的问题twig/timber!非常奇怪的做事方式给项目增加了不必要的复杂性。

话虽这么说,根据他们的文档relative,您可以在变量末尾添加一个调用的过滤器defaultimg,该过滤器将绝对 URL 转换为相对 URL,最终输出默认图像的正确路径。

所以你的代码将是这样的:

  • 定义默认图像的路径:
{% set defaultimg = Image(site.theme.link ~ '/images/placeimage.png') | relative %}
Run Code Online (Sandbox Code Playgroud)

注意:
过滤| relative器将在这里发挥作用。

  • 在图像源属性中调用它:
<img src="{{ post.thumbnail.src | default(defaultimg) | resize(360, 240)}}" class="card-img-top">
Run Code Online (Sandbox Code Playgroud)

我刚刚测试了代码,效果很好!让我知道你是否也可以让它工作!