显示自定义字段(如果有内容)或隐藏(如果没有)

时间:2012-12-19 10:58:30

标签: php jquery wordpress

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

<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 个答案:

答案 0 :(得分:6)

empty empty - 确定变量是否为空

if (!empty(get_field('imagen_prensa'))) {
    // Display image
}

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:2)

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

使用此:

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

我已经编辑了你的代码,看起来更合乎逻辑的东西也增加了echo缺失的地方。我不习惯这些结构:

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

所以我真的不确定它是否正常工作,但你可以通过var_dump(has_posts())等var_dump来检查这些变量输出的内容;

您编辑的代码:

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

答案 3 :(得分:0)

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

看到此链接可能对您有所帮助。 PHP: How to display a default Image if the specified one doesn't exists?