Wordpress查询排除帖子格式

时间:2013-05-26 03:29:55

标签: wordpress

我无法让这个例子在这里工作!http://www.snilesh.com/resources/wordpress/wordpress-query_post-exclude-or-include-post-formats/

我正在尝试获取任何不是“视频”帖子格式的最新帖子。一旦我设置了参数,我不确定我是如何实际编写查询的,至少我无法让它工作。这是我的代码:

<?php
$args = array(
  'tax_query' => array(
   array(
  'showposts' => '1', 
      'taxonomy' => 'post_format',
      'field' => 'slug',
      'terms' => 'post-format-video',
      'operator' => 'NOT IN'
    )
  )
);
query_posts( $args );
?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<!--latest news-->  
<div class="latestNews">
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<?php if ( has_post_thumbnail()) : ?>           
    <a class="thumbnail" href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" >
        <?php the_post_thumbnail(); ?>
    </a>
 <?php endif; ?>
<?php the_excerpt(); ?>
<a href="?cat=1">more entries</a>
<a href="<?php the_permalink() ?>">read more</a>
</div>
<?php endwhile; ?>

我不确定是否有人能发现我在那里做错了什么?!希望得到任何帮助!

由于

2 个答案:

答案 0 :(得分:4)

您正在使用

<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>

但是你没有在变量中分配对象,它应该是

$my_query = query_posts( $args );

但是,我认为最好使用

$my_query = new WP_Query( $args );

所以,你可以使用

$args = array(
    'post_type' => 'post', // if the post type is post 
    'posts_per_page' => 1,
    'tax_query' => array(
    array(
        'taxonomy' => 'post_format',
        'field' => 'slug',
        'terms' => 'post-format-video',
        'operator' => 'NOT IN'
    ))
);
$my_query = new WP_Query( $args );

答案 1 :(得分:1)

解决方案:

$args = array(
    'tax_query' => array(
     array(
       'taxonomy' => 'post_format',
       'field' => 'slug',
       'terms' => array('post-format-video'),
       'operator' => 'NOT IN'
    ) )
);
get_posts( $args );