如何使PHP条件“如果...其他...”正常工作?

时间:2016-12-02 12:55:39

标签: wordpress if-statement

我的功能应该非常简单但对我来说并不容易,我需要帮助。

Here is my website 我使用自定义字段,因此显示为模式框: - 有图像,有图像 - 或者声音云嵌入轨道,当有任何 从来没有!但两者都显示在主页上的缩略图中。

这是我的代码,它实际上有效,但有一些错误,为什么页面上有一个souncloud框,它应该在灯箱上。

<div id="post">
        <a href="#" data-featherlight="#fl3">       

<?php
if ( get_field('music') and get_field('music') != '' ) {
?>
<iframe width="100%" height="166" scrolling="no" class="lightbox" class="frame" id="fl3" frameborder="no" src="https://w.soundcloud.com/player/?url=<?php the_field('music'); ?>&amp;color=1b1e25&amp;theme_color=1b1e25&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false"></iframe> 
<?php } else { ?>



                         <div

<?php $image = get_field('image');
if( !empty($image) ): ?>

class="img" 
href="<?php  $image = get_field('image');if( !empty($image) ): ?> <?php echo $image['url']; ?>"
alt="<?php echo $image['alt']; ?> <?php endif; ?>" 
data-featherlight="image" >
                             <?php endif; ?> 

<?php } ?>


    <?php
        if ( has_post_thumbnail() ) {
        the_post_thumbnail('post-thumbnails');
        }
    ?>
            </div>
    </a>
</div>

这个想法很简单: 如果 有音乐,有音乐。 的其他 获取图像

任何想法? 对不起,如果我的代码有点脏,我不是开发人员。

1 个答案:

答案 0 :(得分:1)

如果你在html'模板'中使用php代码,我会推荐用于控制结构的Alternative语法。

请参阅: http://php.net/manual/en/control-structures.alternative-syntax.php

然后它会是这样的(虽然需要清理):

<?php $image = get_field('image') ?>
<div id="post">
<?php if ( get_field('music') and get_field('music') != '' ): ?>
<iframe width="100%" height="166" scrolling="no" class="lightbox" class="frame" id="fl3" frameborder="no" src="https://w.soundcloud.com/player/?url=<?php the_field('music'); ?>        &amp;color=1b1e25&amp;theme_color=1b1e25&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false"></iframe> 
<?php elseif( !empty($image) ): ?>
    <a href="<?php echo $image['url']; ?>">
    <img
        class="img"             
        alt="<?php echo $image['alt']; ?> 
        data-featherlight="image" />

    <?php
        if ( has_post_thumbnail() ) {
            the_post_thumbnail('post-thumbnails');
        }
    ?>
     </a>
     </div>
    <?php endif; ?>
</div>

这可能不完全正确,但HTML结构存在很大问题。 class="img" alt="<?php echo $image['alt']; ?> data-featherlight="image"未添加到代码中。所以我认为它必须是和img-tag。此外,还有属于a-tag的混合属性。

$image变量也定义了两次。