如何获取WordPress模板文件根据当前页面插入不同的图片?

How to get a WordPress template file to insert different images based on the current page?

我有许多页面 (100),它们都是在可视化编辑器 (DIVI) 中单独构建的。他们每个人都有一组 10-15 个不同的图像,插入到相同的 'wrapper' 中。除了图像,页面是相同的——这是我的第一个网站,所以当我开始的时候,我对这种方法一无所知。据我现在了解,我可以为这些页面使用自定义页面模板,以便 scalability/re-design 更加轻松。

我了解如何创建一个 template.php 页面来提取必要的页面元数据以填充每个页面的 title/subheadings 等。我正在考虑编写一个 for 循环以将页面的每个图像插入重复 'wrapper'。但是,我不确定模板如何根据访问的页面知道将哪些图像传递到此循环中?

我对如何做到这一点有一些想法(我很没有经验):
a) 重新构造我的 wp-uploads 文件夹以匹配我的站点地图并获取模板以将所有图像插入与 slug
匹配的路径中 b) 将每个页面的所有图像上传到后端页面(不确定这是否可能)并获取模板以插入与相关页面相关的所有图像
c) 获取模板以循环遍历数据库 table,其中包含与页面 ID 匹配的所有图像名称,它们应该在其中找到,并且只插入与当前页面 ID 匹配的图像名称

如果这改变了什么,所有 100 个页面都是 pageX 的子页面,并且它们的 slug 以一个共同的词开头。例如:

我的网站。com/pageX/commonword-page1/

我的网站。com/pageX/commonword-page2/

既然你有这么多页面,我不会使用 if 语句。处理此问题的最佳方法是使用高级自定义字段并设置图像字段以显示在 post 类型的页面上。然后,在您的代码中,调用自定义字段,这样每个页面都会动态显示各自的图像。您可以在 WordPress 网站的插件存储库中找到 ACF,或者直接从他们的网站下载。

这是图像字段文档: https://www.advancedcustomfields.com/resources/image/

最干净的方法是将字段设置为使用图像的 URL。以下是您的代码中的内容:

<?php if( get_field('field_slug') ): ?>
    <img src="<?php the_field('field_slug'); ?>" />
<?php endif; ?>