高级自定义字段-If/While字段问题

时间:2013-09-16 作者:adam

我尝试设置的方式是,如果未选择链接,则仅显示图像,但如果选择了链接以及图像,则我希望链接围绕图像,下面是我目前拥有的示例:

<?php if(get_field(\'block_repeater\')): ?>
     <ul>

         <?php while(has_sub_field(\'block_repeater\')): ?>
         <li>
            <!-- problem -->
             <?php if( get_sub_field(\'block_link\') ): ?>

                 <?php while(has_sub_field(\'block_image\')): ?>
                    <a class="img" href="<?php the_sub_field(\'block_link\'); ?>">
                         <img src="<?php the_sub_field(\'block_image\'); ?>" alt="" />
                         <span class="square-arrow"></span>
                     </a>
                 <?php endwhile; ?>

             <?php endif; ?>
            <!--//problem -->

             <?php if( get_sub_field(\'block_image\') ): ?>
                 <img src="<?php the_sub_field(\'block_image\'); ?>" alt="" />
             <?php endif; ?>
         </li>
         <?php endwhile; ?>

     </ul>
<?php endif; ?>
虽然渲染出了大约100个这样的内容,但似乎工作不正常:

<a class="img" href="">
<img alt="" src="">
<span class="square-arrow"></span>
</a>
请不要以为有人知道我做错了什么?

1 个回复
最合适的回答,由SO网友:Anjum 整理而成

使用if 而不是while 因为要比较字段是否存在或是否具有某些值,请使用while 您正在循环槽,在php的执行时间限制结束之前,此循环无法停止,请尝试此操作。

<?php if (get_field(\'block_repeater\')) { ?>
<ul>
    <?php if (has_sub_field(\'block_repeater\')) : ?>
        <li>
            <!-- problem -->
            <?php $block_link = get_sub_field(\'block_link\');
            $block_image = get_sub_field(\'block_image\');

            if ($block_image) { ?>
                <?php if ($block_link) { ?><a class="img" href="<?php the_sub_field(\'block_link\'); ?>"><?php } ?>
                    <img src="<?php the_sub_field(\'block_image\'); ?>" alt="" />
                    <span class="square-arrow"></span>
                <?php if ($block_link) { ?></a><?php } ?>
            <?php } ?>
        </li>
    <?php endif; ?>
</ul>

结束

相关推荐

高级自定义字段-If/While字段问题 - 小码农CODE - 行之有效找到问题解决它

高级自定义字段-If/While字段问题

时间:2013-09-16 作者:adam

我尝试设置的方式是,如果未选择链接,则仅显示图像,但如果选择了链接以及图像,则我希望链接围绕图像,下面是我目前拥有的示例:

<?php if(get_field(\'block_repeater\')): ?>
     <ul>

         <?php while(has_sub_field(\'block_repeater\')): ?>
         <li>
            <!-- problem -->
             <?php if( get_sub_field(\'block_link\') ): ?>

                 <?php while(has_sub_field(\'block_image\')): ?>
                    <a class="img" href="<?php the_sub_field(\'block_link\'); ?>">
                         <img src="<?php the_sub_field(\'block_image\'); ?>" alt="" />
                         <span class="square-arrow"></span>
                     </a>
                 <?php endwhile; ?>

             <?php endif; ?>
            <!--//problem -->

             <?php if( get_sub_field(\'block_image\') ): ?>
                 <img src="<?php the_sub_field(\'block_image\'); ?>" alt="" />
             <?php endif; ?>
         </li>
         <?php endwhile; ?>

     </ul>
<?php endif; ?>
虽然渲染出了大约100个这样的内容,但似乎工作不正常:

<a class="img" href="">
<img alt="" src="">
<span class="square-arrow"></span>
</a>
请不要以为有人知道我做错了什么?

1 个回复
最合适的回答,由SO网友:Anjum 整理而成

使用if 而不是while 因为要比较字段是否存在或是否具有某些值,请使用while 您正在循环槽,在php的执行时间限制结束之前,此循环无法停止,请尝试此操作。

<?php if (get_field(\'block_repeater\')) { ?>
<ul>
    <?php if (has_sub_field(\'block_repeater\')) : ?>
        <li>
            <!-- problem -->
            <?php $block_link = get_sub_field(\'block_link\');
            $block_image = get_sub_field(\'block_image\');

            if ($block_image) { ?>
                <?php if ($block_link) { ?><a class="img" href="<?php the_sub_field(\'block_link\'); ?>"><?php } ?>
                    <img src="<?php the_sub_field(\'block_image\'); ?>" alt="" />
                    <span class="square-arrow"></span>
                <?php if ($block_link) { ?></a><?php } ?>
            <?php } ?>
        </li>
    <?php endif; ?>
</ul>

相关推荐