Display only the latest post

时间:2013-08-19 作者:UzumakiDev

我所做的事情的逻辑似乎有问题。

我只想在自定义术语中显示最新的帖子。但我会显示该术语的所有帖子,即使我使用posts_per_page => 1

我有一个名为“双胞胎”和“双肖像”的分类法,我在一个名为“名人”的类别中有两篇帖子,都有“双肖像”这个词。我的代码输出在正确的类别中,但正如我所说的,它是为每个帖子输出的,而不仅仅是一个帖子。

下面是我使用的代码:

 $post_type = \'post\';

  $taxonomies = get_object_taxonomies( (object) array( \'post_type\' => $post_type ) );

  foreach( $taxonomies as $taxonomy ) : 

    $terms = get_terms( $taxonomy );

  foreach( $terms as $term ) : 

    $args = array(
      \'tax_query\' => array(
        array(
          \'taxonomy\' => $taxonomy,
          \'field\' => \'slug\',
          \'terms\' => $term->slug
          )
        ),
      \'posts_per_page\' => 1,
      \'ignore_sticky_posts\' => true, 
      \'orderby\' => \'modified\',
      );

  $posts = new WP_Query( $args );

  if( $posts->have_posts() ): while( $posts->have_posts() ) : $posts->the_post();
  if(in_category($str)) {
    if(has_term(\'double portrait\',\'twin\')) {
        echo the_excerpt();
    }

  }

  endwhile; endif;

  endforeach;

  endforeach;

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

已格式化为可读的查询参数如下所示:

$args = array(
  \'taxonomy\' => $taxonomy, 
  \'term\' => $term->slug, 
  \'posts_per_page\' => 1, 
  \'orderby\' => \'modified\',
  \'category\' => $str 
);
这与我看到的任何参数模式都不匹配WP_Query. 我想你是在试图构建一个tax_query 但应该是这样的:

$args = array(
  \'tax_query\' => array(
    array(
      \'taxonomy\' => $taxonomy,
      \'field\' => \'slug\',
      \'terms\' => $term->slug
    )
  ),
  \'posts_per_page\' => 1,
  \'ignore_sticky_posts\' => true, 
  \'orderby\' => \'modified\',
  \'category\' => $str 
);
我不知道你为什么有tax_query acategory 论点也许这是个错误,也许你想ANDOR 分类法之间的关系。我不确定。

我怀疑你也想要ignore_sticky_posts 所以我加了一句。

结束

相关推荐

致命错误:调用Resturant插件文件Restaurants.php中的非对象上的成员函数update()

当我在wordpress中点击自定义帖子类型中的发布或保存按钮时,它会显示上述错误。我使用的是单一数据库(即gls),但该数据库共享两个站点的数据。问题是,每当我更新餐厅帖子时,单击“发布”或“保存草稿”按钮后,就会出现上述错误。请帮助我。。。这是我的密码function save_restaurant() { //start function save global $wpdb; global $gldb; global $pos