我有一个 wordpress 页面,它有两个这样的循环......
<?php
global $post;
$args = array(
'showposts' => 1,
'category_name' => 'videos',
'meta_key' => 'feature-image',
);
$myposts = get_posts($args);
foreach( $myposts as $post ) : setup_postdata($post);
$exclude_featured = $post->ID;
?>
<span class="featured">
<?php the_title(); ?>
</span>
<?php endforeach; ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php the_title(); ?>
<?php endwhile; ?>
现在我需要在我的第二个循环中使用 $exclude_featured 一些如何从该循环中排除该帖子。我已经尝试了一些实现,但都没有奏效。我已尝试在第二个循环的 while 语句上方添加以下内容...
global $query_string;
query_posts( $query_string . '&exclude='.$exclude_featured );
还有这个...
global $wp_query;
$args = array_merge( $wp_query->query_vars, array( 'exclude' => $exclude_featured ) );
query_posts( $args );
..并没有运气。我注意到,通过使用这两个片段中的任何一个,它们还会渲染我的 pre_get_posts 函数,该函数将帖子的数量设置为无用。
任何帮助,将不胜感激
编辑:
我尝试while
在第二个循环的语句之前添加以下行。
global $wp_query;
$args = array_merge( $wp_query->query_vars, array( 'post__not_in' => $exclude_featured ) );
query_posts( $args );
但是我仍然没有任何成功,它带来了以下错误:
警告:array_map() [function.array-map]:参数 #2 应该是第 2162 行 /home/myuser/public_html/mysitedirectory/wp-includes/query.php 中的一个数组
警告:implode() [function.implode]:在第 2162 行的 /home/myuser/public_html/mysitedirectory/wp-includes/query.php 中传递的参数无效