0

解決できない問題があります。タイトルが示すように、カテゴリごとに異なる数の投稿を定義したいと考えています。投稿をクエリしようとしましたが、機能しませんでした。すべてのカテゴリの投稿が残っています。pre_get_posts も試してみましたが、これは機能します。しかし、それは親カテゴリでしか機能せず、サブカテゴリでもうまく機能する機能を見つけることができません.

これは私が欲しいものです:

Category Parent 1 > Posts per page 5
 subcategory > post per page 5

Category Parent 2 > Posts per page 10
 subcategory > post per page 10

Category Parent 3 > Posts per page 20
 subcategory > post per page 20

私は pre_get_posts で試しましたが、 is_category は親カテゴリにのみ提供され、サブカテゴリには提供されません。

 function wpse47875_change_posts_per_page( $query ) {

    if ( is_category( 'portadas-facebook' ) ){
        //Display 4 posts for category 1
        $query->set( 'posts_per_page', 1);
    }


}
add_action('pre_get_posts', 'wpse47875_change_posts_per_page', 1);

何か案が?

ありがとう

4

1 に答える 1

0

cat_is_ancestor_of()関数はあなたが望むことをするべきだと思います。

$portadasCat = get_category_by_slug( 'portadas-facebook' );

$currentCatId = get_query_var( 'cat' );

if ( is_category( $portadasCat ) || cat_is_ancestor_of( $portadasCat, $currentCatId ) ){
        //Display 4 posts for category 1
        $query->set( 'posts_per_page', 1);
}
于 2013-02-17T09:42:01.107 に答える