当您将帖子ID存储在另一篇帖子的元字段中(我们将此帖子称为“主帖子”)时,您可以获取该元字段,如果该字段为空,只需避免使用get_the_post_thumbnail()
.
(对于下一个示例,我假设您在主帖子的一个元字段中输入一个帖子ID;如果不是这样,只需说出并解释您使用的数据格式即可)。
例如,如果您在主帖子的循环中:
while( have_posts() ) {
the_post();
// used inside the loop, get_the_ID() returns current post ID in the loop
// replace meta_field_that_stores_post_ID with the key of your meta field
// last param is set to true, so get_post_meta() retuns empty string if the meta field doesn\'t exists
$thumb_post_ID = get_post_meta( get_the_ID(), \'meta_field_that_stores_post_ID\', true );
if( ! empty( $thumb_post_ID ) ) {
echo get_the_post_thumbnail( $thumb_post_ID );
}
}
您可以将该逻辑与模板分离,例如使用模板标记:
function cyb_get_the_post_thumbnail() {
$thumb_post_ID = get_post_meta( get_the_ID(), \'meta_field_that_stores_post_ID\', true );
if( ! empty( $thumb_post_ID ) {
echo get_the_post_thumbnail( $thumb_post_ID );
}
}
然后使用
cyb_get_the_post_thumbnail()
只要你需要它在主帖子的循环中。
如果您不在主帖子的循环中,则至少需要知道主帖子的ID,并执行以下操作:
$thumb_post_ID = get_post_meta( 254, \'meta_field_that_stores_post_ID\', true );
if( ! empty( $thumb_post_ID ) {
echo get_the_post_thumbnail( $thumb_post_ID );
}