我的if语句出了什么问题? (WordPress的)

时间:2015-09-17 02:18:26

标签: php wordpress wordpress-plugin custom-fields

我正在尝试使用自定义字段插件来替换帖子上的精选图片。如果自定义字段为空,我希望它显示特色图像,如果自定义字段有图像,我希望它显示该图像。

<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 -->

2 个答案:

答案 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的基础知识。尝试逐步调试,不要调试整个代码。因为你可能会遇到一个错误,但实际上你可能有几十个错误。