如果没有选项,Wordpress高级自定义字段显示内容

时间:2018-01-05 17:24:29

标签: php wordpress advanced-custom-fields

我有一些选项可以在页脚中显示不同的地址,具体取决于用户是否从帖子对象字段中选择页面ID。我有它的工作,如果用户选择post object ='Music',它会显示'音乐'地址等但我无法工作的是,如果没有选择任何选项,那么只显示默认地址。

这是我到目前为止所做的:

<?php if( have_rows('footer_details', 'option') ): ?>
    <?php while( have_rows('footer_details', 'option') ): the_row(); ?> 
        <?php
            $post_object = get_sub_field('company', 'option');
        ?>
        <?php
            if ( is_page($post_object) ) {  ?>
            <div class="company-footer">
                <?php echo get_sub_field('address', 'option'); ?>
            </div>
        <?php } 
        ?>
    <?php endwhile; ?>
<?php endif; ?>

<p><?php echo get_field('footer_address', 'option'); ?></p>

2 个答案:

答案 0 :(得分:0)

如果设置了address字段,您想要做的是检查,如果没有,则显示default地址。

执行此操作的一种方法如下所示 - 我已将地址加载到变量中,如果变量为&#34;为空&#34;,则会将默认地址分配给变量。

注意:
在下面的代码中,我做了两件事:
我删除了很多打开/关闭PHP标记。除了从PHP转换为HTML以及使代码更加“嘈杂”之外,这些都是不必要的。而且难以阅读。

我已添加评论来解释我正在做的事情。如果需要,您可以安全地删除这些注释。

<?php // load footer address outside of repeater
      $default = get_field('footer_address', 'option');
      if( have_rows('footer_details', 'option') ):
          // removed closing / opening PHP tags for simplicity
          while( have_rows('footer_details', 'option') ): 
              // moved the_row to it's own line for clarity
              the_row();
              $post_object = get_sub_field('company', 'option');
              if ( is_page($post_object) ) { 
                  // load the address custom field into a variable named $address
                  $address = get_sub_field('address', 'option');
                  // check if the $address variable is empty
                  if ( ! $address ) {
                      // if it is empty, load the default into the $address variable
                      $address = $default;
                  } ?>
                  <div class="company-footer">
                      <?php // output the $address variable, which contains either the address or the default address
                            echo $address; ?>
                    </div>
            <?php } 
          endwhile;
       endif; ?>

答案 1 :(得分:0)

经过大量的游戏,我设法解决了它

spring.factories