具有高级自定义字段的可变内容

时间:2013-11-08 01:59:18

标签: php wordpress referrals advanced-custom-fields

我正在尝试使用高级自定义字段" True / False" Wordpress的插件,根据用户的推介ID显示不同的内容。

1)如果有参考。 ID& "创建"是真的,显示"付费导航"  2)如果有参考。 ID& "创建"是假的,显示"主导航"  3)如果还有什么,什么都不显示。

除了第1项外,一切正常。启用True / False时,将出现两个导航菜单。

<?php while(the_repeater_field('referrers', 'options')): ?>         
    <?php if(isset($_COOKIE['referrer']) && get_sub_field('create') == true) {
        $referrer    = json_decode(stripslashes($_COOKIE['referrer']));
            echo wp_nav_menu( array('container' => false, 'menu' => 'Paid Nav' ) );

} elseif(isset($_COOKIE['referrer']) && get_sub_field('create') == false) {
        $referrer    = json_decode(stripslashes($_COOKIE['referrer']));
            echo wp_nav_menu( array('container' => false, 'menu' => 'Main Nav' ) );

} else {
echo '';

}?>
<?php endwhile; ?>

2 个答案:

答案 0 :(得分:0)

问题是你在循环中有show菜单。可能发生的事情是,它在一瞬间显示第一个,而在另一个时刻,第二个显示。这是一种不同的编码方式:

<?php
if(isset($_COOKIE['referrer'])):
  $menu_to_display = 'Main Nav';
  $referrer    = json_decode(stripslashes($_COOKIE['referrer']));
  while(the_repeater_field('referrers', 'options')):
    if(get_sub_field('create'))
      $menu_to_display = 'Paid Nav';
  endwhile;
  echo wp_nav_menu( array('container' => false, 'menu' => $menu_to_display ) );
endif;
?>

这样,菜单只显示一次,仅显示一个菜单。此外,它使用较少的测试。 它有帮助。

答案 1 :(得分:0)

喜欢这个吗?

<?php
  $menu_to_display = 'Main Nav';
  if(isset($_COOKIE['referrer'])):
    $referrer    = json_decode(stripslashes($_COOKIE['referrer']));
    while(the_repeater_field('referrers', 'options')):
      if(get_sub_field('create'))
        $menu_to_display = 'Paid Nav';
    endwhile;
  endif;
  echo wp_nav_menu( array('container' => false, 'menu' => $menu_to_display ) );
?>