你的问题太复杂了,你需要把它分解成多个更简单的问题。如果我们不这样做,问题就更难了,而在网上搜索一个有着完全相同问题的人即使不是不可能,也要困难得多。
让我们用伪代码来实现这一点,就像你告诉lamens的那样,用简单的英语编写的代码:
categories = get all categories
for each category in "categories"
image ID = get the image ID from the image field
image URL = get the URL for the attachment with the ID of "image ID"
display the image
display the title of the category
现在,我们有几个更小、更易于管理的问题,每个问题都可以独立研究,解决方案和资源的数量大大增加:
如何获取所有类别
如何从类别的ACF字段中获取图像=给定图像ID,如何获取URL可能是这些问题也需要分解成更小更简单的问题,因为我们正在研究如何做到这一点。请注意,所有这些都是很好的问题,你可以在这里得到3倍的声誉,并且每个部分得到更长更深入的答案。
因此,我们可以使用伪代码,开始将纯英语替换为真正的PHP代码:
$categories = [];// get all categories
foreach ( category in "categories" ) {
//image ID = get the image ID from the image field
//image URL = get the URL for the attachment with the ID of "image ID"
//display the image
//display the title of the category
}
从如何填充开始categories
所有类别?我相信你已经找到了第一个问题的答案,但它隐藏在一个更复杂的问题中。这个get_categories
功能就是你想要的。接下来的“如何从类别的ACF字段中获取图像”,将引导您this question
最后,“给定一个图像ID,如何获取URL”,要做到这一点,您可以使用wp_get_attachment_url
, which is documented with examples here
最后,您永远不想显示所有帖子或所有类别。这是因为随着类别数量的增加,生成页面和运行查询的时间也会增加。最终会有如此多的用户出现,以至于页面永远无法完成加载,或者DB在负载下挣扎,这就限制了有多少人可以同时查看您的站点(如果他们可以查看的话)。相反,设置200个类别的上限,这样就永远不会有问题