0

私は現在、開発中のワードプレス サイトで高度なカスタム フィールド プラグインを使用しており、非常に便利であることが証明されています。

スタッフ メンバーのリストを生成するのに役立つリピーター アドオンを購入しました。ただし、スタッフ メンバーが使用できる画像が常にあるとは限らないので、代替画像を使用するか、 http://placehold.itのようなオンライン プレースホルダー画像サービスを使用したいと思いますか?

コードは次のとおりです。

                <?php if(get_field('about_the_practioner')): ?>

                <?php while(the_repeater_field('about_the_practioner')): ?>

                <article class="colleague_excerpts">

                         <figure>
                            <?php if(get_field('image')): ?>
                            <img src="<?php the_field('image' ) ?>" alt="<?php the_sub_field('image_alt_text'); ?>">
                            <?php else: ?>
                            <img src="http://placehold.it/160x160&text=Awaiting Image">
                            <?php endif; ?> 

                         </figure>

                        <div class="description">
                            <header>
                                <h4><?php the_sub_field('header')?><span><?php the_sub_field('title')?></span></h4>
                            </header>
                            <p><?php the_sub_field('text') ?></p>
                            <a href="<?php the_sub_field('page_link')?>" class="button"><?php the_sub_field('page_link_text') ?></a>
                        </div>
                    <hr>

                </article>

                <?php endwhile; ?>

                <?php endif; ?>

注目の画像が利用できない場合に代替画像を作成するために使用される条件文を見てきました。この場合、画像が呼び出される時点で同様のことを試しましたが、php が苦手で、画像フィールドにデータが入力されていても、フォールバック画像のみが Web ページに取り込まれます。どんな助けでも大歓迎です。

4

4 に答える 4

3

ちょうどそれを考え出した!条件文に渡していた関数が間違っていました! 高度なカスタム フィールドのリピーター フィールド機能を使用していたので、上記のすべての値に対して get_sub_field を渡す必要がありました。それはあなたをつまずかせるささいなことです!

<?php if(get_sub_field('image')): ?>
<img src="<?php the_sub_field('image' ) ?>" alt="<?php the_sub_field('image_alt_text'); ?>">
<?php else: ?>
<img src="http://placehold.it/160x160&text=Awaiting Image">
<?php endif; ?>
于 2013-03-16T11:00:34.087 に答える
0

これらの関数のいくつかが何を返すかはわかりませんが、関数get_field('image')は画像の有無に関係なく何かを返す可能性があるため、代わりに

<?php if(get_field('image')): ?>
<img src="<?php the_field('image' ) ?>" alt="<?php the_sub_field('image_alt_text'); ?>">
<?php else: ?>
<img src="http://placehold.it/160x160&text=Awaiting Image">
<?php endif; ?> 

たぶん試してみてください

<?php if(!empty(the_field('image'))): ?>
<img src="<?php the_field('image' ) ?>" alt="<?php the_sub_field('image_alt_text'); ?>">
<?php else: ?>
<img src="http://placehold.it/160x160&text=Awaiting Image">
<?php endif; ?> 

画像が空の場合、プレースホルダーを返します。

于 2013-03-15T20:41:01.547 に答える
0

私は間違って数えているかもしれません、実際にはそうでした。この回答は無視してください。角かっこが一致しておらず、生成された HTML の問題が問題を引き起こしていると思いました。ジョニー・ビーチはそれを解決しました。

于 2013-03-16T11:09:49.203 に答える