我有一个“比赛”CPT为足球队的每场比赛创建帖子。这些帖子通过从另一个CPT-“俱乐部”的相应帖子中提取信息,显示对手球队的详细信息。我还没有弄清楚的一点是如何获得缩略图。
当前代码为:
<h2 class="match-team">
<span class="match-badge">
<?php
$opposition = get_field(\'club\');
if($opposition):
?>
<img src="https://www.MYDOMAIN.co.uk/images/club/<?php echo $opposition->post_name; ?>.jpg" class="match-badge-img">
</span>
<a class="match-name" href="/clubs/<?php echo $opposition->post_name; ?>/" >
<span>
<?php echo $opposition->post_title;?>
</span>
</a>
<?php endif; ?>
<span class="match-score"><?php the_field(\'opposition_goals\'); ?></span>
</h2>
如果俱乐部有已上传的唯一图像,即俱乐部1有图像或俱乐部13有图像,则当前img src有效。但并非所有俱乐部都是这样,例如,俱乐部2没有形象。因此,这将返回断开的图像链接。
没有图片的俱乐部有一个通用的占位符作为他们的特色图片,所以我的解决方案是更改img src路径,以便它能够引入该特色图片。我用过这个,但没有效果:
<img src="<?php echo wp_get_attachment_url( get_post_thumbnail_id($opposition->post_name) ); ?><?php echo get_the_post_thumbnail($opposition->post_name); ?>" class="match-badge-img">
以及
<?php echo $opposition->the_post_thumbnail(\'medium\', array( \'class\' => \'match-badge-img\' ) ); ?>
但是,也不要通过适当的缩略图,这表明我在一些非常基本的问题上出错了。可以
$opposition->
是否在此上下文中使用?
最合适的回答,由SO网友:Sally CJ 整理而成
如果要获取帖子缩略图URL,可以使用get_the_post_thumbnail_url()
:
<?php $image_path = \'images/club/\' . $opposition->post_name . \'.jpg\'; // relative to the root directory
if ( @file_exists( ABSPATH . $image_path ) ) { // Check the unique image first.
$thumbnail = home_url( \'/\' . $image_path );
} elseif ( has_post_thumbnail( $opposition ) ) { // Then the post thumbnail.
$thumbnail = get_the_post_thumbnail_url( $opposition, \'medium\' );
}
if ( ! empty( $thumbnail ) ) : ?>
<img src="<?php echo esc_url( $thumbnail ); ?>" class="match-badge-img" />
<?php endif; ?>
如果要获取帖子缩略图,可以使用
get_the_post_thumbnail()
:
<?php $image_path = \'images/club/\' . $opposition->post_name . \'.jpg\'; // relative to the root directory
if ( @file_exists( ABSPATH . $image_path ) ) : // Check the unique image first. ?>
<img src="<?php echo esc_url( home_url( \'/\' . $image_path ) ); ?>" class="match-badge-img" />
<?php elseif ( has_post_thumbnail( $opposition ) ) : // Then the post thumbnail. ?>
<?php echo get_the_post_thumbnail( $opposition, \'medium\', [ \'class\' => \'match-badge-img\' ] ); ?>
<?php endif; ?>
还有
the_post_thumbnail_url()
和
the_post_thumbnail()
, 但这些函数用于循环中的当前post,而不是像您的示例中那样的自定义post对象
$opposition
.
在上述示例中,我假设唯一图像文件的名称始终以.jpg
.