我正在尝试使用高级自定义字段" 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; ?>
答案 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 ) );
?>