为父类别设置每页帖子,它都是子类别

时间:2013-08-05 作者:hbgreg

我正在尝试使用以下函数设置特定类别及其所有子类别的每页帖子数:

function hbg_category_query( $query ) {
if( $query->is_main_query() && $query->is_category()) {
    if (is_category( \'14\' ) || cat_is_ancestor_of( 14, get_query_var(\'cat\'))) {
    $query->set( \'posts_per_page\', 32 );
    }
}
return $query;
}
它适用于父类别,如果我指定子类别的ID,它也适用,但我正在尝试捕获所有子类别(甚至是新类别)。

有人能澄清我对这一工作原理的误解吗?

非常感谢。

格雷格

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

你想要的get_term_children.

function hbg_category_query( $query ) {
  if( $query->is_main_query() && $query->is_category()) {
    $categories = get_term_children(1,\'category\');
    $categories[] = 1; // add your special category

      if (is_category($categories)) {
        $query->set( \'posts_per_page\', 32 );
      }
  }

  return $query;
}
add_action(\'pre_get_posts\',\'hbg_category_query\');
几乎没有测试,但我认为这会起作用。

结束