【问题标题】:php $image = get_field( 'image' ) // if // elsephp $image = get_field('image') // if // else
【发布时间】:2020-12-01 19:20:24
【问题描述】:

如果没有使用替代图像的图像,我需要查询。

<?php $angebot_17 = get_field( 'angebot_17' ); ?>
           <?php if ( $angebot_17 ) : ?>
               <?php $post = $angebot_17; ?>
               <?php $image = get_field( 'image' ); ?>
                       <?php if ( $image ) { ?>
                       <a href="<?php the_permalink(); ?>">
                           <img width="300" height="300" src="<?php the_field('image'); ?>" alt="<?php echo esc_attr( $image['alt'] ); ?>" class="img-responsive product-img wp-post-image box_image" />
                           <?php $lager = get_field ('lager'); ?>
                           <?php if ( $lager) { ?>
                           <span class="goods_label" style="background-color: #00CC99;color: #ffffff;bottom:8px;border-color: #00CC99;">
                               <span>Versand aus Deutschland</span>
                           </span>
                           <?php } ?>
                       </a>
                       <?php } ?>
                       <?php else: ?>
                       <img width="300" height="300" src="/wp-content/uploads/2019/09/cropped-Logo_512x512-4.png" alt="<?php echo esc_attr( $image['alt'] ); ?>"  />
                       <span class="goods_label" style="background-color: red;color: #ffffff;bottom:8px;">
                               <span>Leider kein Bild vorhanden</span>
                           </span>
                       <?php wp_reset_postdata(); ?>

                       <?php endif; ?>

令人疯狂的是,它适用于 18 张图像中的 4 张。 我想我在某处的“其他查询”中有错误。 因为如果我将默认图像与实际产品图像交换,那么它可以工作..但这当然没有意义;)

【问题讨论】:

  • 嗯......什么?请简明扼要地解释您的问题
  • 有什么问题?什么不工作?预期的输出是什么?
  • 我真的不想刻薄,但这是一个很好的例子说明为什么 PHP 如此难以管理。
  • 哦,对不起......虽然“正确”的图像可用,但替代图像显示给我。
  • 您的图像 ACF 字段究竟是如何设置的 - 即 $image 中的内容是什么?您将它用作字符串和数组,所以其中一些是错误的。请向我们展示您从var_dump($image); 获得的信息。此外,与此特定问题无关,但您最后遗漏了一些 endifs(我想您有它们但只是没有;这里没有包括它们?)。此外,您正在混合使用 { / }: / endif - 这不是错误,但保持一切一致可以更容易发现错误。您也不需要每行 &lt;?php ?&gt; - 它们之间可以有超过 1 行代码:)

标签: php if-statement advanced-custom-fields


【解决方案1】:

我认为它有效!!!

我再次“干净”地编写了整个代码!

感谢大家的支持!

<?php
    $angebot_1 = get_field( 'angebot_1' );
    if ($angebot_1) {
        $post = $angebot_1;
        $image = get_field( 'image' );

        if ($image) {
            echo '
                <img
                width="300"
                height="300"
                src="' . esc_url( $image['url'] ) .'"
                alt="' . esc_attr( $image['alt'] ) . '"
                class="img-responsive product-img wp-post-image box_image" /> ';

            $lager = get_field ('lager');
            if ($lager) {
                echo '<span
                        class="goods_label"
                        style="background-color: #00CC99;color: #ffffff;bottom:8px;border-color: #00CC99;">
                    <span>Versand aus Deutschland</span>
                </span> ';
                }

            }
            else {
                echo '<img
                        width="300"
                        height="300"
                        src="/wp-content/uploads/2019/09/cropped-Logo_512x512-4.png"
                        alt="'. esc_attr( $image['alt'] ).'"  /> ';
                echo '<span
                            class="goods_label" style="background-color: red;color: #ffffff;bottom:8px;">
                                <span>Leider kein Bild vorhanden</span>
                            </span> ';
            }
        wp_reset_postdata();
    }

【讨论】:

  • 如果你有一个新问题,你应该一起创建一个新问题
猜你喜欢
  • 2015-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-08
  • 2021-05-09
  • 2010-11-14
相关资源
最近更新 更多