这个问题现在终于由我自己解决了。在本文末尾找到解决方案。问题简而言之:How can i ask in my WP template, IF the whole array of have_posts contains any post from a certain category
我对标签页进行了编程,以便根据类别将输出分为三个样式框。循环进行了三次,如果我对类别进行了分类,则使用IF。这是一个简化的工作结构草案:
<div><ul>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php if (in_category(\'cat1\')) : ?>
<li>...
<endif>
</ul></div>
<div><ul>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php if (in_category(\'cat2\')) : ?>
<li>...
<endif>
</ul></div>
<div><ul>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php if (in_category(\'cat3\')) : ?>
<li>...
<endif>
</ul></div>
您可以在此处看到输出:
http://imlichte.net/tag/interdependenz/现在,我的观点是,在一个类别中找不到帖子时,要避免使用emtpy框。然后根本不应渲染长方体(div)。为此,我想为div和ul设置一个IF条件,它们位于循环之外。所以我想问一件事:
IF have_posts contains posts from a certain category
仅当结果不为零时,才会显示在页面上创建框的div和ul,从而达到抑制空框的结果。
我希望我能很好地解释我的请求,以便被理解,并希望专家能给出解决方案,因为我只是一个业余程序员。
谢谢你的帮助
编辑:为了清楚起见,下面是生成我的类别结构化标记列表的全部代码:
<div class="box">
<h2 class="archive-title" style="text-align:center">Artikel</h2>
<hr />
<ul class="postlist">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php if (in_category(\'wissen\')) : ?>
<li>
<?php if (has_post_thumbnail()): ?>
<a href="<?php the_permalink();?>"><?php the_post_thumbnail(array(150,150));?>
<?php else: ?>
<div class="postlistfilling"></div>
<?php endif; ?>
<a class="postlisttitle" href="<?php the_permalink();?>"><?php the_title(); ?></a>
<div class="pthumb">
<?php the_excerpt();?>
</div>
</li>
<?php endif; endwhile; endif; ?>
</ul>
</div>
<div class="box">
<h2 class="archive-title" style="text-align:center">Empfehlungen</h2>
<hr />
<ul class="postlist">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php if (in_category(\'empfehlungen\')) : ?>
<li>
<?php if (has_post_thumbnail()): ?>
<a href="<?php the_permalink();?>"><?php the_post_thumbnail(array(150,150));?>
<?php else: ?>
<div class="postlistfilling"></div>
<?php endif; ?>
<a class="postlisttitle" href="<?php the_permalink();?>"><?php the_title(); ?></a>
<div class="pthumb">
<?php the_excerpt();?>
</div>
</li>
<?php endif; endwhile; endif; ?>
</ul>
</div>
<div class="box">
<h2 class="archive-title" style="text-align:center">Seminare</h2>
<hr />
<ul class="postlist">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php if (in_category(\'seminare\')) : ?>
<li>
<?php if (has_post_thumbnail()): ?>
<a href="<?php the_permalink();?>"><?php the_post_thumbnail(array(150,150));?>
<?php else: ?>
<div class="postlistfilling"></div>
<?php endif; ?>
<a class="postlisttitle" href="<?php the_permalink();?>"><?php the_title(); ?></a>
<div class="pthumb">
<?php the_excerpt();?>
</div>
</li>
<?php endif; endwhile; endif; ?>
</ul>
</div>
解决方案:我只运行了一次整个循环,以便在遇到该类别的帖子时将变量设置为true。如果没有post,var将保持false,实际循环周围的Div框将不会输出。
<?php $categoryexisting = false;
if (have_posts()) : while (have_posts()) : the_post();
if (in_category(\'articles\')) :
$categoryexisting = true;
endif; endwhile; endif; ?>
<?php if ($categoryexisting): ?>
<div class="box">
<h2 class="archive-title" style="text-align:center">Articles</h2>
<hr />
<ul class="postlist">
<?php endif; ?>
。。。实际循环。。。