一个问题是,您需要将$post\\u id传递给函数,以便它可以使用。
global $post;
check_gtin( $post->ID );
function check_gtin( $post_id ) { /* ... */ }
另一个问题是,在PHP中,单引号意味着
literal strings 不会打印其中的变量。有几种方法可以将其转换为工作代码:
echo "gtin13:{$gtin}";
echo \'gtin13:\' . $gtin;
printf( \'gtin13:%s\', $gtin );
此外,根据您设置post meta的方式,它可以返回“空”的内容,但不必返回空字符串
\'\'
. 就我个人而言,我更喜欢使用
empty()
检查是否存在。这将检查空数组、空字符串、0、false。
总的来说,它可能看起来像:
/**
* Display GTIN
*
* @param Integer $post_id
*
* @return void
*/
function check_gtin( $post_id ) {
$gtin = get_post_meta( $post_id, \'gtin\', true );
if( ! empty( $gtin ) ) {
echo "gtin13:{$gtin}";
} else {
echo \'identifier_exits:false\';
}
}