Отображать различное количество сообщений из одной категории на разных страницах

wordpress.stackexchange https://wordpress.stackexchange.com/questions/7262

Вопрос

в соответствии с Страсть с пользовательской петлей. Анкет Я использую пользовательскую петлю для отображения Flash Game. Для создания страниц на странице с постами из одной категории (MyDomain/Category/CategoryName) я использовал:

add_action( 'pre_get_posts', 'wpse5477_pre_get_posts' );
function wpse5477_pre_get_posts( &$wp_query )
{
    if ( $wp_query->is_category() ) {
        $wp_query->set( 'post_type', 'game' );
        $wp_query->set( 'posts_per_page', 9 );
    }
}

У меня есть раздел на главной странице моего сайта, где отображается три игры из каждой категории. Но согласно коду выше я не могу отображать только 3 игры, даже если я определяю в массиве ('post_per_page', 3) или SMTH, как это, потому что это число уже было определено в $ wp-Query. Как я мог убить двух птиц одним камнем? Спасибо.

Это было полезно?

Решение

Вы можете проверить наличие переменной, чтобы не перезаписать ее:

add_action( 'pre_get_posts', 'wpse7262_pre_get_posts' );
function wpse7262_pre_get_posts( &$wp_query )
{
    if ( $wp_query->is_category() ) {
        if ( ! array_key_exists( 'post_type', $wp_query->query_vars ) ) {
            $wp_query->set( 'post_type', 'game' );
        }
        if ( ! array_key_exists( 'posts_per_page', $wp_query->query_vars ) ) {
            $wp_query->set( 'posts_per_page', 9 );
        }
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top