如何从循环显示中仅排除某些类别中的最新帖子?

时间:2015-11-18 14:23:29

标签: php wordpress loops

我有两个循环和查询。

在页面顶部,我有这个代码。它仅显示名为"特色":

的类别中的最新帖子
<?php
    $latest_featured_post = new WP_Query ( array ( 'category_name' => 'featured', 'posts_per_page' => 1 ) );
    while ($latest_featured_post->have_posts()) : $latest_featured_post->the_post();
?>

现在我想从同一页面上的另一个主要循环中排除该帖子,因为我不想让它显示两次。我试图通过在&#34;特色&#34;中捕获最新帖子的ID来实现这一点。类别,并将其传递给&lt; post__not_in&#39;争论,但我做错了。这是我的代码

<?php 

        $category_id = get_cat_ID('Događaji');
        $exlude_latest_featured_post = array($latest_featured_post->ID);
        $args = array(
            'category__not_in' => array($category_id),
            'post__not_in' => $exlude_latest_featured_post,
        );

        query_posts( $args );
        while (have_posts()) : the_post(); ?>

    <?php get_template_part('loop/content'); ?> 

我尝试手动传递帖子的ID(例如,#post; not_in&#39; =&gt;数组(1337))并且它可以正常工作。这意味着我错误地抓住了&#34;特色&#34;最新的帖子ID。

我正在谷歌搜索答案,但我找不到任何有用的东西。希望有人在这里有时间和正确的答案

由于

1 个答案:

答案 0 :(得分:1)

您可以通过get_the_id函数捕获第一个循环的精选帖子ID,然后在后面的循环中使用它:

<?php
    $latest_featured_post = new WP_Query ( array ( 'category_name' => 'featured', 'posts_per_page' => 1 ) );
    while ($latest_featured_post->have_posts()) : 
        $latest_featured_post->the_post(); 
        $featuredID = get_the_id();
?>

你的后一个循环:

    $category_id = get_cat_ID('Događaji');
    $exlude_latest_featured_post = array($featuredID);