2013-02-17 2 views
0

У меня есть проблема, которую я не могу решить. Как говорится в названии, я хочу определить другое количество сообщений в каждой категории. Я пытался запросить сообщения и не работал, и они оставляют сообщения всех категорий, я также пытался использовать pre_get_posts, и это работает. Но он работает только для родительской категории и не может найти функцию, чтобы она хорошо работала для подкатегорий.Ограничение количества сообщений для каждой категории и ребенка, wordpress

Это то, что я хочу:

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); 

Любая идея?

Благодаря

ответ

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); 
} 
+0

спасибо, что вы помогли, но не работали с подкатегорией: s, любое другое предложение? – dukem30

+0

Извините, мой плохой, я забыл 'cat_is_ancestor_of()' не принимает категорию slug в качестве аргумента. Мы должны получить категорию с помощью 'get_category_by_slug()' first. Пожалуйста, см. Мой обновленный ответ :) – kjetilh

+0

Большое спасибо за ваше время, к сожалению, не работает с подкатегориями, любыми другими идеями о том, как вы могли это сделать? Я думал о том, чтобы не использовать pre_get_posts, если не шаблон категории, но при этом разбиение на страницы не работает – dukem30

Смежные вопросы