我为特定于自定义帖子类型的ACF帖子设置了两个字段。
edition_number
和artist_proofs
某些帖子类型没有这些数据集,而有些帖子类型则没有。我将此函数放在content-single.php模板中,这样如果它确实有这个信息,它应该通过。
出于某种原因,即使我的帖子在这两个字段中都没有任何内容,这仍然会返回'版本'。
function ffm_edition() {
if ( get_field( 'edition_number' ) && get_field( 'artist_proofs' ) ) {
echo 'Edition of ' , the_field( 'edition_number' ) , ', ' , the_field( 'artist_proofs' ) , 'APs';
} elseif ( empty( get_field( 'artist_proofs' ) ) ) {
echo 'Edition of ' , the_field( 'edition_number' );
} elseif ( empty( get_field( 'edition_number' ) && get_field( 'artist_proofs' ) ) ) {
//DO NOTHING
}
}
我有什么遗漏吗?
答案 0 :(得分:0)
我意识到这是一个简单的背景错误...
第二项检查只是检查artist_proofs
字段是否为空。由于两者都是空的,因此它将始终返回edition of
。我需要检查一个有效的字符串+一个空字符串:
} elseif ( get_field( 'edition_number' ) && empty( get_field( 'artist_proofs' ) ) ) {
完整摘录:
function ffm_edition() {
if ( get_field( 'edition_number' ) && get_field( 'artist_proofs' ) ) {
echo 'Edition of ' , the_field( 'edition_number' ) , ' + ' , the_field( 'artist_proofs' ) , 'APs';
} elseif ( get_field( 'edition_number' ) && empty( get_field( 'artist_proofs' ) ) ) {
echo 'Edition of ' , the_field( 'edition_number' );
} elseif ( empty( get_field( 'edition_number' ) ) && empty( get_field( 'artist_proofs' ) ) ) {
//DO NOTHING
}
}