0

我有一个带有多个 WP_query 循环的主页,我想防止特色帖子同时出现在其特定的类别循环中。我只希望它不再是特色帖子时出现在类别循环中。

这是我的特色循环:

<?php
$featuredPost = new WP_Query();
$featuredPost->query('showposts=1&category_name=featured');
while ($featuredPost->have_posts()) : $featuredPost->the_post(); 

stuff

<?php endwhile; ?>

这是我的类别循环:

<?php
$categoryPost = new WP_Query();
$categoryPost->query('showposts=3&category_name=news');
while ($categoryPost->have_posts()) : $categoryPost->the_post(); 

stuff

<?php endwhile; ?>

<br/>

<?php
$categoryPost = new WP_Query();
$categoryPost->query('showposts=3&category_name=sport');
while ($categoryPost->have_posts()) : $categoryPost->the_post(); 

stuff

<?php endwhile; ?>

<br/>

<?php
$categoryPost = new WP_Query();
$categoryPost->query('showposts=3&category_name=art');
while ($categoryPost->have_posts()) : $categoryPost->the_post(); 

stuff

<?php endwhile; ?>

任何帮助将非常感激。

4

1 回答 1

0

首先在你的第二个WP_Query参数中你可以添加

$categoryPost->query('showposts=3&category_name=art&cat=-5'); // 5 assumed the id of featured category

此外,您可以使用

// get the category ID first
$idObj = get_category_by_slug('featured'); 
$id = $idObj->term_id;

// use the id to exclude it from query
$categoryPost = new WP_Query('showposts=3&category_name=art&cat=-'.$id);
if($categoryPost->have_posts()):
    while($categoryPost->have_posts()) : $categoryPost->the_post();
    ?>
        <h2><?php the_title(); ?></h2>
    <?php
    endwhile;
endif;

因此,变量中的 value/id$id将从查询中排除。阅读更多关于Codex的信息。

于 2013-09-22T18:46:04.750 回答