2012-12-20 66 views
0

我有2个循环。在第一个循环中显示了3个最近的粘性帖子。在第二篇文章中,显示了所有文章(粘性而非粘性)。现在我想删除第二个循环中最近的3个粘贴文章。Unsticky粘粘贴的一些

我尝试过这样的事情,但它从两个循环中删除所有粘性文章,而不是从loop2粘贴一些文章。 //编辑:我的两个循环的代码:

<?php 
$sticky = get_option('sticky_posts'); // Get all sticky posts. 
rsort($sticky); // Sort sticky posts in reverse order. 
$sticky = array_slice($sticky, 0, 3); // Number of sticky posts to show. 
$latestStickyPosts = $sticky; 

$loop1query = new WP_Query(array('post__in' => $sticky, 'ignore_sticky_posts' => 1)); 

// START 1ST LOOP. 
while ($loop1query->have_posts()) : $loop1query->the_post(); 
$do_not_duplicate[] = $post->ID; // global. ?> 
<div> ... </div> 
<?php endwhile; 
// END 1ST LOOP. 


$showposts = 5; // Show posts per page. 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args = array('category__in' => $cat, 'showposts' => $showposts, 'paged' => $paged); 

$loop2query = new WP_Query($args); 

// START 2ND LOOP. 
query_posts($args); if(have_posts()) : while (have_posts()) : the_post(); 
if(in_array($post->ID, $latestStickyPosts) continue; ?> 
<div> ... </div> 
<?php endwhile; endif; 
// END 2ND LOOP. ?> 

我不在乎帖子是否真的不粘在后端。它们应该以这种方式显示:loop1 = 3个最近的贴图。 loop2 =剩余的贴纸和所有不粘贴的帖子

谢谢任何​​帮助或建议!

回答

0

我没有看到代码中的第一个循环,但由于您在循环遍历第二个循环中的所有帖子,因此可以使用不需要的3个粘性帖子ID再次显示。

假设你有一个数组$latestStickyPosts,那么你可以做:

query_posts($args); if(have_posts()) : while (have_posts()) : the_post(); 
if (in_array($post->ID, $latestStickyPosts)) continue; ?> 

欲了解更多信息,请this documentation

+0

感谢您的回答!我在我的代码中添加了一个'$ latestStickyPosts'数组(两个循环的编辑代码现在在我的问题中)。这对我来说听起来很合逻辑,但总是有一行错误'if(in_array($ post-> ID,$ latestStickyPosts)continue;?>'。 – Katy

+0

错误是什么? –

+0

我刚才看到我错过了一个“ )”。我现在正在纠正我的帖子。 –