从Wordpress循环中排除特色帖子

时间:2013-08-20 13:07:42

标签: wordpress loops custom-fields

我的Wordpress首页包含一篇精选文章(在一个方框内设计)和一个最近的帖子列表(单独设置样式)。我想使用Wordpress循环显示这些最近的帖子,不包括精选帖子。排除特定类别或标签很容易实现,但在我的情况下,我想要排除带有自定义字段的帖子。精选帖子有一个自定义字段,其名称和值为:featured = yes。

如何在不使用插件的情况下实现此目的?

2 个答案:

答案 0 :(得分:2)

您可以使用meta_query参数,如http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

中所述

类似的东西:

$args = array(
    'post_type' => 'any',
    'meta_query' => array(
        array(
            'key' => 'featured',
            'value' => 'yes',
            'compare' => 'NOT LIKE'
        )
    )
);

$query = new WP_Query( $args );

答案 1 :(得分:0)

$args = array(
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key' => 'featured',
            'value' => 'yes',
            'compare' => '='
        ),
    ));
$ids = array();
$query = new WP_Query($args); // fetching posts having featured = yes
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        $ids[] = $post->ID; // building array of post ids
    }
}

$args = array( 'post__not_in' =>$ids); // excluding featured posts from loop
query_posts($args);

while (have_posts()) : the_post();
// rest of the code