Другое количество сообщений на первой полосе

Я хочу 5 сообщений на своей первой полосе, но 10 сообщений на последующих страницах (страница 2, 3..).

В моем Settings> Reading> Blog страницы показывают самое большее>, я имею 10. Но я хочу показать только 5 сообщений на первой полосе, таким образом, в index.php я использую это:

if ( $paged <= 1 ) $posts = query_posts($query_string.'&posts_per_page=5&paged='.$paged);

Хорошо работает за исключением того, что.. На странице 2 6-е к 10-м сообщениям не показывают. Как будто от страницы 2 WP «думала», что первая полоса на самом деле показала 10 первых сообщений, не всего 5.

Что я могу сделать?

2
17.07.2011, 22:49
4 ответа

Попробуйте это:

$page_num = $paged;
if ($pagenum='') $pagenum = 1;
if ($pagenum > 1) { $post_num = 10 } else { $post_num = 5 }
  query_posts('showposts='.$post_num.'&paged='.$page_num); 
    if (have_posts()) : while (have_posts()) : the_post();
    endwhile;endif;
-1
19.02.2020, 22:41

Существует a post_limits рычаг, который можно использовать с этой целью точно:

// in homepage show 6 posts
add_filter('post_limits', 'homepage_limits' );
function homepage_limits( $limits )
{
     if(is_home() ) {
        return  'LIMIT 0, 6';;
     }
 return $limits;
}
2
19.02.2020, 22:41

Извините, просто скучал и тралю через архивы. Вы могли пойти с этим:

if(is_home() || is_front_page) { //some themes forget one or the other
    $post_num = 5;
} else {
   $post_num = 10;
}
query_posts('showposts='.$post_num.'&paged='.$page_num); 
    if (have_posts()) : while (have_posts()) : the_post();
    endwhile;endif;
-1
19.02.2020, 22:41

Попробуйте это.

function frontpage_custom_post_count(&$query)
{
    // show specific number of posts on frontpage
    $frontpagePostsCount = 5;
    if (is_front_page() and !is_paged()) {
        $query->query_vars['posts_per_page'] = $frontpagePostsCount;
    }
    // show configured posts on the rest of pages, offsetting the ones showed on frontpage
    if (is_front_page() and is_paged()) {
        $posts_per_page = isset($query->query_vars['posts_per_page']) ? $query->query_vars['posts_per_page'] : get_option('posts_per_page');
        $query->query_vars['offset'] = (($query->query_vars['paged'] - 2) * $posts_per_page) + $frontpagePostsCount;
    }
}
add_action('pre_get_posts', 'frontpage_custom_post_count');
-1
19.02.2020, 22:41
  • 1
    Добавьте объяснение к своему ответу: почему это могло решить проблему? –  fuxia♦ 29.05.2013, 01:21

Теги

Похожие вопросы