有两种方法可以解决这个问题。第一个是你正在尝试的,但你必须打印出你得到的价值。像这样:
print get_post_meta();
我不建议这样做,原因有二:
你应该让模板尽可能简单。否则,它们就会被业务代码的碎片弄得乱七八糟,这使得一切都很难维护打印此值需要比您想象的更多的工作。将其移动到一个单独的位置可以保持模板干净,并使代码更具可读性写下您的body
改为这样标记:
<body
<?php
do_action( \'body_start_tag_attributes\' );
astra_schema_body();
bene_body_class();
?>
>
请注意
do_action()
我介绍过。这允许您从任何地方添加所需的任何代码。现在让我们在你的
functions.php
:
add_action( \'body_start_tag_attributes\', function() {
if ( ! is_singular() ) {
return; // an archive or a 404
}
$post = get_post();
// the last parameter means you get the first entry of the meta array.
$meta = get_post_meta( $post->ID, \'my_attr\', true );
if ( ! $meta ) {
return; // no meta value
}
$value = esc_attr( $meta );
print \' data-myAttr="\' . $value . \'"\';
});
正如你所见,你需要一些;防护装置;打印值之前:检查当前页面的类型(单数)、属性的存在,最后出于安全原因转义该值。
然后,只有到那时,你才能打印出来。
您甚至可以重用钩子来添加其他属性,以备以后需要-无需对模板进行任何进一步更改!