4

我正在显示这样的自定义字段:

<div class="blog_text">
    <img src="<?php the_field('imagen_prensa'); ?>" />
</div>

我想让 img 仅在用户上传图像时出现,因为现在如果没有图像,则会出现损坏的图像符号。

我尝试了以下方法,但没有奏效:

<?php if (get_field('imagen_prensa') != ''): ?>
     <img src="<?php the_field('imagen_prensa'); ?>" />
<?php endif; ?>

有什么可以实现的吗?

编辑:

这是现在使用下面答案的代码,但现在它只给出一个空白页:

<div id="blog_interior">

        <?php /* Start the Loop */ ?>
        <?php while ( have_posts() ) : the_post(); ?>

            <article>
            <div class="article_date"><?php the_time('d/m/Y'); ?></div>
            <h2><?php echo get_the_title(); ?></h2>
            <div class="blog_text">
                <?php if ( !empty(the_field('imagen_prensa')) ): ?>
                    <img src="<?php echo the_field('imagen_prensa'); ?>" />
                <?php endif; ?>
                <div class="video_prensa"><?php the_field('video_prensa'); ?></div>
                <?php the_content() ?>
            </div>
        </article>

        <?php endwhile; ?>    
            <div class="back">

            </div>
    </div>
4

4 回答 4

6

empty empty — 确定变量是否为空

if (!empty(get_field('imagen_prensa'))) {
    // Display image
}
于 2012-12-19T11:00:29.740 回答
2

尝试使用 empty() 而不是与空字符串进行比较。

<?php if (empty(get_field('imagen_prensa')) === false): ?>
    <img src="<?php echo the_field('imagen_prensa'); ?>" />
<?php endif; ?>

empty() 还检查类似nullfalse可能返回的值。trim()如果字段可能仅包含空格,您也可以使用字符串。

于 2012-12-19T11:00:48.463 回答
2

您忘记了实际打印 the_field('imagen_prensa') 的结果的回声。

用这个:

<?php if ( !empty(the_field('imagen_prensa')) ): ?>
     <img src="<?php echo the_field('imagen_prensa'); ?>" />
<?php endif; ?>

我已经编辑了你的代码,看起来更合乎逻辑的东西还在它们丢失的地方添加了回声。我不习惯这些结构:

<?php while ( have_posts() ) : the_post(); ?>

所以我实际上不确定它是否正常工作,但你可以通过用 var_dump 将它们包围来检查这些变量的输出,例如 var_dump(have_posts());

您编辑的代码:

<div id="blog_interior">

    <?php /* Start the Loop */ ?>
    <?php foreach( $posts as $post ): ?>

        <div class="article_date"><?php echo the_time('d/m/Y'); ?></div>
        <h2><?php echo get_the_title(); ?></h2>
        <div class="blog_text">
            <?php if ( !empty(the_field('imagen_prensa')) ): ?>
                <img src="<?php echo the_field('imagen_prensa'); ?>" />
            <?php endif; ?>
            <div class="video_prensa"><?php the_field('video_prensa'); ?></div>
            <?php echo the_content() ?>
        </div>

    <?php endforeach; ?>    
    <div class="back">

    </div>
</div>
于 2012-12-19T11:06:42.407 回答
0

根据您的要求,您已将默认图像设置为用户中没有图像。如果用户已上传图像,则显示自己的图像。

查看此链接可能会对您有所帮助。PHP:如果指定的图像不存在,如何显示默认图像?

于 2012-12-19T11:03:00.713 回答