带有高级自定义字段的PHP if语句

时间:2013-07-07 15:03:19

标签: php wordpress if-statement wordpress-plugin

我正在使用Wordpress和高级自定义字段插件来创建图库缩略图。有9个可能的上传字段,但只需要第一个。

目前我遇到一个问题,其中任何字段都是空的,它仍在输出img标签但显示损坏的图像(因为没有图像)。

我需要创建一个if语句,如果字段有src(或者字段不为空),则只输出HTML。

这是我目前的代码,其中有9个:

<li>
    <div class="portfolioPicker">
       <?php $image = wp_get_attachment_image_src(get_field('portfolio_image_2'), 'thumbnail'); ?>
       <img id="portfolioImg_2" class="portfolioPickerThumb" src="<?php echo $image[0]; ?>" alt="<?php echo get_the_title(get_field('portfolio_image_2')) ?>" />
    </div>
</li>

我已经为PHP if语句找到了一段很好的代码,但我很难让它使用我当前的输出代码:

<?php if( get_post_meta($post->ID, "mycustomfieldname", true) ): ?>
<?php echo get_post_meta($post->ID, "mycustomfieldname", $single = true);?>
<?php else: ?>

<?php endif; ?>

1 个答案:

答案 0 :(得分:2)

以下是三种可能的解决方案,只有在设置了数组键时才显示标记:

<li>
    <div class="portfolioPicker">
    <?php
            $image = wp_get_attachment_image_src(get_field('portfolio_image_2'), 'thumbnail');
            if($image[0] != NULL)
            {
    ?>
                <img id="portfolioImg_2" class="portfolioPickerThumb" src="<?php echo $image[0]; ?>" alt="<?php echo get_the_title(get_field('portfolio_image_2')) ?>" />
    <?php
            }
    ?>
    </div>
</li>

OR

<li>
    <div class="portfolioPicker">
    <?php
            $image = wp_get_attachment_image_src(get_field('portfolio_image_2'), 'thumbnail');
            if(is_null($image[0]) == false)
            {
    ?>
                <img id="portfolioImg_2" class="portfolioPickerThumb" src="<?php echo $image[0]; ?>" alt="<?php echo get_the_title(get_field('portfolio_image_2')) ?>" />
    <?php
            }
    ?>
    </div>
</li>

OR

<li>
    <div class="portfolioPicker">
    <?php
            $image = wp_get_attachment_image_src(get_field('portfolio_image_2'), 'thumbnail');
            if(empty($image[0]) == false)
            {
    ?>
                <img id="portfolioImg_2" class="portfolioPickerThumb" src="<?php echo $image[0]; ?>" alt="<?php echo get_the_title(get_field('portfolio_image_2')) ?>" />
    <?php
            }
    ?>
    </div>
</li>

您使用哪种功能以及如何使用它取决于值本身 - 什么是“空”?即 ''0' 'NULL 可能都是空的。

希望这有帮助。