我觉得这个问题有一个非常简单的解决方案 . 然而,在试图解决它大约3个小时失败后,我谦卑地来找你 .
基础知识:
- 已创建自定义帖子类型“ band ”,并且有多个自定义字段(通过Advanced Custom Fields插件创建) .
问题:
如何在常规帖子中获取并显示特定 band 条目(使用其ID或 Headers 或slug)的内容(特别是自定义字段数据)? (见下文diagram)
this diagram http://thisnewband.com/images/diagram.png .
触发自定义帖子类型显示的方法:
我们必须提供ID / title / slug,以便它知道要显示的 band 帖子的内容
-
Shortcode(例如
[band id="21"]
)(在帖子内容中添加) -
自定义字段(自定义字段名称
band-id
,您可以在其中输入 band 的ID)
我尝试过什么以及它为什么不起作用:
- 短代码
在帖子编辑器字段中插入
-
` [band id = "21"]
-
使用
WP_Query
查询类型= band 且ID = "21"的帖子 . -
代码位于
functions.php
-
结果:它将回显静态文本,但不会显示任何特定于帖子的内容(波段名称等) . 也不会拉取特定于帖子的自定义字段数据 .
-
(也试过
query_post
但没有运气) -
自定义字段
-
在帖子编辑器页面的自定义字段中输入ID(21) .
-
将其直接编入到帖子模板中:
-
使用
WP_Query
并从自定义字段拉出数组中的ID
. -
结果:没有什么好事发生 .
我遇到麻烦的地方:
- 在实际帖子中,很难从自定义帖子类型中提取自定义字段数据
最佳解决方案:
无论是使用短代码,自定义字段,还是新的小部件,如果有人可以:
-
创建一个PHP模板,其中包含单个 Band 内容应如何显示的代码 . (包括循环) . 示例名称:band-block.php
-
使用
get_template_part('band-block');
来回显此代码(通过functions.php发布模板或短代码)
谢谢你的帮助!如果您想查看我的任何代码,请告诉我 .
3 回答
正常循环后添加此循环...
我知道你已经为你的问题找到了解决方案,但对于其他人我会给他们另一个解决方案:
你可以按ID查询,没问题 . 看看这些:http://www.advancedcustomfields.com/resources/field-types/relationship/但你必须检查自定义字段"return format"框"Post IDs" . 然后它运作得很好 .
抱歉我的英语不好;)干杯
通过Hobo的一些惊人的帮助,我能够想出一个解决方案!
The main problem 试图通过'ID'进行查询 . 无论我们尝试什么,它都从未运作良好 . (这可能是Advanced Custom Fields存储ID字段内容的方式 . )
做了什么工作:
为帖子页面创建了一个自定义字段,用于将 Band (自定义帖子类型)帖子名称/ slug放入其中 . (自定义字段名为
post-band-name
,使用Advanced Custom Fields插件创建 . )将查询代码放在帖子模板中 . (见下面的代码)
完成 .
解决方案代码