我正在尝试使用自定义字段插件来替换帖子上的精选图片。如果自定义字段为空,我希望它显示特色图像,如果自定义字段有图像,我希望它显示该图像。
<div class="showcase-pic">
<?php $image = get_field('shown_image');
if ( !empty($image) ): ?>
<a href="<?php echo $image['url']; ?>"><img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" /></a><br />
<?php elseif (has_post_thumbnail( $post->ID ) ): ?>
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); ?>
<a href="<?php echo $image[0]; ?>"><img src="<?php echo $image[0]; ?>" alt=""></a>
<?php endif; ?>
</div><!--eof of show case pic -->
答案 0 :(得分:1)
将您的陈述简化为if / else(因为您只查找两个输出)。如果图像字段具有值,请使用它。如果没有则使用特色图像。而且您只需要检查图像是否存在。
<?php $image = get_field('shown_image'); ?>
<? if ( $image ) : ?>
<img src="<?= $image['url'];?>"/>
<?php else : ?>
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); ?>
<a href="<?php echo $image[0]; ?>"><img src="<?php echo $image[0]; ?>" alt=""></a>
<?php endif;?>
答案 1 :(得分:0)
你得到什么错误?
以下是调试代码时需要采取的一些步骤。
1)var_dump(get_field('shown_image')); - 这样就可以检查get_field是否返回任何数据以及它是什么数据。
2)如果var_dump返回一个对象。你需要确保它有一个url字段并且它不是空的
3)var_dump(has_post_thumbnail($ post-&gt; ID)); - 为了使您的elseif语句为true,此函数应返回true。看看它返回什么
4)var_dump(wp_get_attachment_image_src(get_post_thumbnail_id($ post-&gt; ID)) - 这是一个复杂的函数调用。你需要确保两个函数都返回一些东西。
5)如果上面的var_dump返回一些东西,那么检查$ image [0];不是空的。
这些是debuging的基础知识。尝试逐步调试,不要调试整个代码。因为你可能会遇到一个错误,但实际上你可能有几十个错误。