PHP高级自定义字段:仅当分配给页面时才显示项目
请容忍我。编程新手 我正在尝试使用ACF和repeater插件创建餐厅菜单 下面的屏幕截图显示了我正在努力实现的目标。这是已将数据添加到数据库的后端 这是我获取所需字段的基本循环PHP高级自定义字段:仅当分配给页面时才显示项目,php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,请容忍我。编程新手 我正在尝试使用ACF和repeater插件创建餐厅菜单 下面的屏幕截图显示了我正在努力实现的目标。这是已将数据添加到数据库的后端 这是我获取所需字段的基本循环 <?php while( have_rows('menus') ): the_row(); ?> <?php $item_name = get_sub_field('item_name'); $item_pric
<?php while( have_rows('menus') ): the_row(); ?>
<?php
$item_name = get_sub_field('item_name');
$item_price = get_sub_field('item_price');
$item_description = get_sub_field('item_description');
$special = get_sub_field('special');
?>
<h1 class="<?php echo $special"?>>
<?php echo $item_name ?>...<?php echo $item_price ?>
</h1>
<h2><?php echo $item_description ?></h2>
<?php endwhile; // end of the loop. ?>
我有三个模板,每个模板都显示相同的菜单,但在某些页面中,如果类设置为CSS样式,则会显示“特殊”项
e、 g
King's Cross Page列出了菜肴1和菜肴2的特殊性
但是
Covent Garden页面列出了第1道菜,跳过了第2道菜,因为它被选为国王十字架的特别菜
如何跳过未分配给特定模板的字段
谢谢。是的,仍然不确定我是否完全理解这一点,但如果我理解正确,您需要检查页面是否与特殊字段相等吗 比如:
<?php while( have_rows('menus') ) : the_row();
$item_name = get_sub_field('item_name');
$item_price = get_sub_field('item_price');
$item_description = get_sub_field('item_description');
$special = get_sub_field('special');
?>
<?php if( $special == get_the_title() ) :
?>
<h1 class="<?php echo $special; ?>">
<?php echo $item_name ?>...<?php echo $item_price ?>
</h1>
<h2><?php echo $item_description ?></h2>
<?php
endif;
endwhile; // end of the loop. ?>
你在网上有这样的例子吗?我很难理解你的意思,我不抱歉。目前所有这些都在本地运行。让我再解释一遍。我有三页。国王十字街,考文特花园,肖尔迪奇。每个页面都列出了使用ACF插件创建的相同菜单。当用户添加菜单项时,他可以将某些菜单项分配给页面,例如Kings Cross。因此,如果在访问Kings交叉页时将菜单项设置为Shoreditch,则不会显示Shoreditch菜单项。我假设您从数据库中删除它。或者某种形式的Arrayn我不太明白?数据是在后端设置的。上面的字段是后端。我只需要知道如何创建一个循环来显示菜单项,并跳过某些未分配给所查看页面的菜单项。因此,您的代码和上面的循环应该可以一起工作?因此,如果用户在后端创建了Dish1、Dish2、Shoreditch Special、Dish3、Dish4、Kings Special。如果模板中的“特殊”设置为“显示Shoreditch”,则“特殊”将隐藏,但菜单项仍按该顺序显示。希望这是有意义的。这段代码也包含了你的循环,我刚刚添加了一个if语句,表示如果特殊字段等于页面名称,则显示该菜肴。如果不是,则仍将显示非特殊菜肴?