0

我正在使用 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; ?>
4

1 回答 1

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>

或者

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

或者

<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 都可能意味着空。

希望这可以帮助。

于 2013-07-07T16:00:30.083 回答