【发布时间】:2013-01-26 21:19:21
【问题描述】:
我整天都被这个问题所困扰,我一直无处可去,希望有人能提供帮助!
我正在为一家餐厅建立一个网站,该餐厅有多个地点,需要列出每个特定地点存在的每种饮料。然后需要按类别(棕色、白色、番茄、啤酒、葡萄酒)对这些饮料进行分类。我觉得我非常接近解决方案,但最近一段时间我一直在努力。
这是我的代码:
$drinks = get_posts('post_type=drinks&numberposts=-1');
$show_brown_title = false;
$show_white_title = false;
$show_tomato_title = false;
$show_wine_title = false;
$show_beer_title = false;
if ( $drinks ) {
foreach( $drinks as $drink ) {
$id = $drink->ID;
$drink_location = $drink->drink_location;
if($drink->drink_category == 'Brown' && $drink_location && in_array($site_slug, $drink_location)) {
if($show_brown_title == false) {
echo '<h4><span>Brown</span> Cocktails</h4>';
echo '<ul>';
$show_brown_title = true;
}
echo '<li>';
echo '<span class="drink_title">'.$drink->post_title.'</span>';
echo '<span class="drink_ingredients">'.$drink->drink_ingredients.'</span>';
echo '<span class="drink_price">'.$drink->price_oz.'</span>';
echo '</li>';
}
if($drink->drink_category == 'White' && $drink_location && in_array($site_slug, $drink_location)) {
if($show_white_title == false) {
echo '<h4><span>White</span> Cocktails</h4>';
echo '<ul>';
$show_white_title = true;
}
echo '<li>';
echo '<span class="drink_title">'.$drink->post_title.'</span>';
echo '<span class="drink_ingredients">'.$drink->drink_ingredients.'</span>';
echo '<span class="drink_price">'.$drink->price_oz.'</span>';
echo '</li>';
}
}
}
在大多数情况下,这是可行的。但是,我遇到了 2 个问题。
- 在完成每个类别后,我不知道如何关闭无序列表。
- 这大部分是按类别分组的,但是,如果我有以后要喝的饮料,它实际上不会将它归入正确的类别,它只会归入底部的任何类别。我不确定这是因为我没有关闭无序列表,还是因为从 WP 中拉出帖子的顺序。
如果我解释得很好,请告诉我,我非常感谢你们提供的任何帮助!
Z
【问题讨论】:
-
您是否尝试添加 if($show_brown_title == false) { echo ''; } 在关闭的 LI 之后?
-
我做了,但是因为一切都在 for 循环中,它在每个 LI 实例之后添加它
-
那么你应该在for循环之外打开它,在for循环之外也关闭它。
-
我不确定我能不能。我只希望在这些类别中确实有饮料时显示这些类别,并且只有在我已经开始循环时才能显示它们。
标签: php wordpress loops foreach