ilovewordpress
  • 0
Новичок

Количество постов в архиве

  • 0

Как сделать так, чтобы на первой странице архива отображалось 10 сообщений, а на остальных (>1) — 20?

Имя моего произвольного типа сообщений — «квартиры».

Ваше здоровье!

Share
  1. Вы можете изменить posts_per_page переменную в зависимости от страницы, на которой вы находитесь, поэтому сделайте ее 10 на первой странице и 20 на других страницах. Однако вам также придется изменить offset переменную запроса, иначе вы пропустите сообщения 11-20 на второй странице, потому что эта страница думает, что они уже отображаются на первой странице.

    add_action( 'pre_get_posts', 'wpse15087_pre_get_posts' );
    function wpse15087_pre_get_posts( &$wp_query )
    {
        if ( $wp_query->is_post_type_archive( 'apartments' ) ) {
            if ( ! $wp_query->is_paged() ) {
                $wp_query->set( 'posts_per_page', 10 );
            } else {
                $wp_query->set( 'posts_per_page', 20 );
                $wp_query->set( 'offset', ( ( $wp_query->get( 'paged' ) - 2 ) * 20 ) + 10 );
            }
        }
    }
    
    • 0

Оставить ответ

You must login to add an answer.