如何在树枝模板(Timber \ Image对象)中从相邻的多站点博客渲染图像

时间:2018-10-03 23:51:51

标签: wordpress multisite timber

无济于事,我一直在寻找Timber文档以确定如何从主博客的树枝模板中的相邻多站点博客渲染图像。

传递到树枝模板的posts数组是通过调用Timber\Post扩展名的循环构造的,在此循环中,某些帖子用switch_to_blog(2) + restore_current_blog()处理。从博客ID 2检索的posts数组中的posts包含所有正确和预期的数据,包括Timber\Image对象。

array (size=9) ... 5 => array (size=15) 'ID' => int 7528 ... 'image' => object(Timber\Image)[4256] ... public 'ID' => string '8541' (length=4)

但是,当树枝模板呈现帖子数据时,它是针对主要博客而不是与该图像相关联的博客(即博客ID 2)使用图像ID(8541)。当然,结果是使用另一个博客的图像ID从主博客调用了显示的图像。

我希望在遍历posts数组时,Timber\Image需要切换到另一个博客ID,但是我不确定这样做是如何实现的。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我正在做这样的事情-因为我想将所有图像重定向到一个博客(整个WP Multisite的一个媒体库),因此我的处境更加容易。

所以我还不能为您提供完整的答复,但是也许我可以为您指明正确的方向并分享我偶然发现的问题。

首先,我扩展了Timber\ImageTimber\PostTimber\ImageHelper

在我的Post Class中,我刚刚更改了图像类(改为我的)。

在图像类中,每次WP使用switch等功能时,都必须添加restorewp_get_attachment...-因此,每次将图像ID聚合到url / path时,都必须添加。 / p>

在ImageHelper中,您必须使用_Operate方法-还要添加switchrestore

我仍然遇到的问题:

  • ACF-我添加了一个过滤器以切换到正确的博客
  • 如您所见-大量替代-更新将是有问题的

还要看看这两个插件:

他们有一些不同的方法,所以也许它将以某种方式激发您的灵感。