2012-10-18 3 views
0

WordPress 관리자 패널에서 페이지 당 10 개의 게시물을 표시하도록 설정했지만 첫 페이지와 내 경우 홈페이지에 11 개의 게시물을 표시하고 싶습니다. 그래서 홈페이지에 11 개의 게시물을 표시하고 다른 모든 페이지에는 10 개의 게시물을 표시하고 싶습니다.Wordpress 홈페이지에 다른 수의 게시물을 표시하는 방법

이 코드를 사용하여 구현하려고하지만 is_home()은 페이지 번호에 관계없이 항상 true를 반환합니다.

function home_custom_query($query) { 

    if ( is_home()) 
    { 
     $query->query_vars['posts_per_page'] = 11; 
    } 

    return $query; 
} 
add_filter('pre_get_posts', 'home_custom_query'); 

위의 코드는 홈페이지를 포함한 모든 페이지의 게시물 수를 변경합니다.

는 또한 페이지 번호를 감지하는이 시도하고

function home_custom_query($query) { 

    if ( is_home() && $query->query_vars['paged'] == 0) 
    { 
     $query->query_vars['posts_per_page'] = 11; 
    } 

    return $query; 
} 
add_filter('pre_get_posts', 'home_custom_query'); 

이 홈페이지에 대한 11 페이지 당 게시물을 변경하지만 다른 모든 페이지에 아무것도 표시되지 않습니다 아래와 같이했습니다.

또한 목적을 충족시키는 cbnet-different-posts-per-page 플러그인을 사용해 보았지만 사용하고 싶지 않은 몇 가지 추가 기능을 추가했습니다. 내 문제에 대한 간단한 해결책이 필요해. 그리고 나는이 문제를 해결할 수있는 깔끔하고 깨끗한 방법이있을 것이라고 확신합니다.

답변

0

다음과 같이 했으므로 도움이 될 수도 있습니다.

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$page_num = $paged; 
if($paged >1) 
    $showposts = 10; 
else 
    $showposts = 11; 
query_posts('showposts=' .$showposts. '&paged='.$page_num); 
?> 


<?php if (have_posts()) : ?> 
    <?php while (have_posts()) : the_post(); ?> 
     // WordPress loop 
    <?php endwhile; ?> 
<?php endif; ?> 
0

템플릿에 어딘가에 루프가 있어야하며 여기에 쿼리 게시물을 사용할 수 있습니다. 당신은 밴에 showposts 매개 변수를 줄 수 있습니다. 그녀의 예.

<?php 
$page_num = $paged; 
if ($pagenum='') $pagenum =1; 

if(is_home) { $showposts = 11 } else { $showposts = 10 } 

query_posts('showposts=' .$showposts. '&paged='.$page_num); 
?> 



<?php if (have_posts()) : ?> 
    <?php while (have_posts()) : the_post(); ?> 
     // WordPress loop 
    <?php endwhile; ?> 
<?php endif; ?> 
관련 문제