0

我有一个 taxonomy.php 文件来显示分类术语。我在 functions.php 中添加了一个过滤器,以包含分类页面查询的帖子类型。这个过滤器:

   add_filter( 'pre_get_posts' , 'ucc_include_custom_post_types' );
function ucc_include_custom_post_types( $query ) {
  global $wp_query;

  /* Don't break admin or preview pages. */
  if ( !is_preview() && !is_admin() && !is_page() && !is_single() ) {
    $args = array(
      'public' => true ,
      '_builtin' => false
    );
    $output = 'names';
    $operator = 'and';

    $post_types = get_post_types( $args , $output , $operator );
    $post_types = array_merge( $post_types , array( 'post' ) );

    if ($query->is_feed) {
      // Do feed processing here.
    } else {
      $my_post_type = get_query_var( 'post_type' );
      if ( empty( $my_post_type ) )
        $query->set( 'post_type' , $post_types );
    }
  }

  return $query;
}

返回您想要的任何和所有帖子类型。但我正试图找到一种方法将它们分开。我尝试使用普通循环,但我不知道如何从页面中获取当前的分类标签。

我有 2 个问题都是相关的,但看看解决这个问题的最佳方法是什么。假装我有 3 种帖子类型('post' 'post2' 'post3')

  1. 是否有可以在 taxonomy.php 中使用的循环来显示特定的帖子类型?所以可以为每种帖子类型设置一个循环吗?因此,当我单击分类术语时,taxonomy.php 将返回:

--分类页面--

自定义类型帖子 1 的循环(在此特定帖子类型中显示带有当前分类标签的帖子)

循环自定义类型帖子 2

循环自定义类型帖子 3

  1. 如果有多个循环,这会影响分页吗?还是分页仅适用于帖子?

我在 taxonomy.php 页面中使用了许多单循环,但无济于事。我觉得我必须将当前的分类术语变量呼应到一个新变量:

$term = $wp_taxonomies??

taxonomy.php 页面中的多个循环有什么方法吗?

4

1 回答 1

0

可能最简单的方法是忽略现有的$wp_query并在您的分类模板中创建三个新查询。因此,不要在模板中启动“循环”,只需创建一个新查询并使用该查询循环即可。对其他帖子类型重复此操作。这也意味着您不需要挂钩pre_get_posts过滤器,您只需为您创建一个自定义查询。

确实,您将不得不考虑下一页的 UI。这取决于您希望将帖子类型分开的原因。如果您在第一页上同时看到这三个就足够了,您可以使用三个单独的“下一页”链接,因此每个帖子类型一个。

于 2010-08-02T14:21:27.987 回答