无法找到有关此的信息。在处理大量元数据/自定义字段时,我更愿意简化在模板中获取元数据的过程,而不是使用get_post_meta
相反,将该数据的设置保留在其所属的后端,以保持我的模板干净且易于使用。
有没有办法做到这一点?
<p><?php echo $something->meta_field_name ?></p>
这类似于你可以做的事情
$post->ID
或
$post->post_parent
这是WordPress核心中的,但它将用于自定义帖子类型和自定义字段。如果这不可能,我想下一个问题是,为什么?
编辑:因为我在回复中多次提到这一点,所以在编写这样的PHP时,您必须转义输出,我就是这么做的。为了简洁起见,我省略了转义,但对于任何一个新手来说,我通常会这样写(感谢@fuxia为我最初的问题提供了解决方案)。
WordPress的转义(使用解决方案):
<p id="text-<?php echo esc_attr($post->post_name) ?>"><?php echo esc_html($post->meta_key_name) ?></p>
如果要输出到类:
<p class="text-<?php echo sanitize_html_class($post->post_title) ?>">Clean Class</p>
我通常不会使用
post_title
但以它为例
sanitize_html_class
将删除空白,只保留字母数字字符、下划线和破折号。
如果输出JSON-LD之类的内容,可以结合转义:
"@id": "<?php echo esc_js(esc_url($link)) ?>#<?php echo esc_js($post->post_name) ?>",
"name": "<?php echo esc_js($post->post_title) ?>"