2017-04-13 1 views
0

블로그 선택 페이지에 표시된 글의 수를 선택할 수있는 select가 있습니다. 그 순간 select가 자동으로 양식을 제출하고 posts_per_page 값이 다시로드 할 때 페이지 쿼리에 대해 업데이트됩니다. 표준 워드 프레스 기능을 사용하여WordPress 페이지 매김시 페이지 당 값 유지

global $query_string; 
if(isset($_REQUEST['set_posts_per_page'])) 
    $ppp = $_REQUEST['set_posts_per_page']; 
else 
    $ppp = 12; 
query_posts("{$query_string}&posts_per_page=".$ppp); 

현재 생성 매김 버튼 :

previous_posts_link('<span class="etc"></span>'); 
next_posts_link('<span class="etc"></span>'); 

사용자가 페이지 매김하고 posts_per_page 옵션을 사용할 수 있도록이 작품을 다시하는 가장 좋은 방법은 무엇입니까?

동일한 방식으로 작동해야하는 다른 맞춤 게시물 유형을 나열한 여러 페이지가 있습니다 (차이가 나는 경우).

답변

0

감사드립니다. 유일한 단점은 이제 get 변수를 URL에 추가하지만 이것이 세상 끝이 아니라는 것입니다.

여기에서 next_posts_link() 및 previous_posts_link()를 완전히 바꿔서 맞춤 코드 비트를 추가했습니다. get_previous_posts_page_link() 및 get_next_posts_page_link()를 사용하여 페이지 매김 함수가 일반적으로 얻을 수있는 URL을 가져 와서 set_posts_per_page REQUEST 매개 변수를 확인하고 페이지 매김 URL에 집어 넣습니다.

그런 다음 수동으로 탐색 버튼을 만들고 get 매개 변수로 URL을 입력하십시오. strtok 함수는 매번이 get 매개 변수가 URL에서 쌓이는 것을 막습니다.

<?php global $wp_query; 
    $current_page = $wp_query->get('paged'); 


    /* Previous link */ 
    $prev_url = strtok(get_previous_posts_page_link(), '?'); 

    if($prev_url && $current_page!=1 && $_REQUEST['set_posts_per_page']!='') 
     $prev_url.="?set_posts_per_page=".$_REQUEST['set_posts_per_page']; 

    if($prev_url && $current_page!=1) : ?> 
     <a href="<?=$prev_url; ?>"> 
      <span class="navbuttons__btn navbuttons__btn--next btn btn--ui" rel="next"> 
       <i class="fa fa-arrow-left"></i> 
      </span> 
     </a> 
    <?php endif; 


    /* Next link */ 
    $next_url = strtok(get_next_posts_page_link(), '?'); 

    if($next_url && $current_page!=$wp_query->max_num_pages && $_REQUEST['set_posts_per_page']!='') 
     $next_url.="?set_posts_per_page=".$_REQUEST['set_posts_per_page']; 

    if($next_url && $current_page!=$wp_query->max_num_pages) : ?> 
     <a href="<?=$next_url; ?>"> 
      <span class="navbuttons__btn navbuttons__btn--next btn btn--ui" rel="next"> 
       <i class="fa fa-arrow-right"></i> 
      </span> 
     </a> 
    <?php endif; ?> 
0

블로그를 가져 오는 코드는 아래를 참조하십시오.

<?php 
     $queryObject = new WP_Query('post_type=blog&posts_per_page=5'); 
     // The Loop! 
     if ($queryObject->have_posts()) { 
     ?> 
     <ul> 
     <?php 
     while ($queryObject->have_posts()) { 
     $queryObject->the_post(); 
     ?> 

페이지에 페이지 매기기를 추가하려는 경우 wp 페이지 매김 플러그인을 사용하기 쉽도록 추가하십시오.

<?php echo wp_paginate(); ?> 

내가이 당신을 도움이되기를 바랍니다 추가 할 수 있습니다.

이 내가하고 결국 무엇을 당신

+0

미안하지만이 질문에 대해서는 실제로 언급하지 않습니다. 그리고 절대적으로 필요한 경우가 아니면 플러그인 솔루션을 찾지 않습니다. –

+0

아래의 coe를 확인하여 페이지 매김을 확인하십시오. Vipin

0
<?php 
// the query to set the posts per page to 5 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args = array('posts_per_page' => 5, 'paged' => $paged); 
query_posts($args); ?> 
<!-- the loop --> 
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
     <!-- rest of the loop --> 
     <!-- the title, the content etc.. --> 
<?php endwhile; ?> 
<!-- pagination --> 
<?php next_posts_link(); ?> 
<?php previous_posts_link(); ?> 
<?php else : ?> 
<!-- No posts found --> 
<?php endif; ?> 
+0

질문의 요점은 페이 지당 페이지 수 값을 가변적으로 설정하여 페이지 매김시 손실되지 않는 것입니다. 두 분 모두 질문에 대한 이유를 무시했습니다. –