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

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(have_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>
于 2012-12-19T11:06:42.407 に答える
2

空の文字列と比較する代わりに、empty() を使用してみてください。

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

empty() は、nullまたはのような値falseが返されるかどうかもチェックします。trim()フィールドに空白のみが含まれている可能性がある場合は、文字列も使用できます。

于 2012-12-19T11:00:48.463 に答える
0

要件に応じて、デフォルトの画像をユーザーに画像なしとして設定しました。ユーザーが画像をアップロードした場合は、独自の画像を表示します。

このリンクを参照してください。PHP:指定された画像が存在しない場合にデフォルトの画像を表示するにはどうすればよいですか?

于 2012-12-19T11:03:00.713 に答える