2016-10-25 1 views
0

wordpress에서 첫 번째 웹 사이트를 만들려고하고 있고 페이지 매김 문제가 있습니다. 문제가 무엇인지 알아 내는데 이틀을 보냈지 만 페이지 링크는 퍼머 링크를 일반으로 설정하고 사이트의 리디렉션 (this// page_id = 6032 & paged = 2)과 같이 잘 설정하면 작동합니다. 하지만 내가 permalinks를 사용자 지정으로 설정하면 (리디렉션은/accommodation/page/2 /로 나를 보내고 있습니다) 나를 찾을 수없는 페이지로 연결됩니다. 요즘 많이 검색해 보았지만 많은 해결책을 찾았지만 아무 것도 작동하지 않는 것 같습니다. 이상한 점은 내 사이트의 다른 페이지에 정확히 동일한 페이지 매김을 사용했는데 제대로 작동한다는 것입니다. 페이지 매김이 작동하지 않는 숙박 시설의 페이지는 차이wordpress 사이트의 페이지 매김은 일반 permalinks (com /? p = 123)로 작동하지만 사용자 정의 (/ % postname % /)로 작동하지 않습니다.

query_posts("post_type=testimonial&posts_per_page=$testimonial_perpage&paged=$paged") 

내 매김의 코드가

function pagination() { 
    if(is_singular()) 
      return; 
    global $wp_query; 
     /** Stop execution if there's only 1 page */ 
    if($wp_query->max_num_pages <= 1) 
     return; 
     $paged = get_query_var('paged') ? absint(get_query_var('paged')) : 1; 
      $max = intval($wp_query->max_num_pages); 
        /** Add current page to the array */ 
     if ($paged >= 1) 
      $links[] = $paged; 
      /** Add the pages around the current page to the array */ 
     if ($paged >= 3) { 
      $links[] = $paged - 1; 
      $links[] = $paged - 2; 
     } 

     if (($paged + 2) <= $max) { 
      $links[] = $paged + 2; 
      $links[] = $paged + 1; 
     } 

    echo '<div class="navigation"><ul>' . "\n"; 
    /** Previous Post Link */ 
    if (get_previous_posts_link()) 
     printf('<li>%s</li>' . "\n", get_previous_posts_link()); 
    /** Link to first page, plus ellipses if necessary */ 
    if (! in_array(1, $links)) { 
     $class = 1 == $paged ? ' class="active"' : ''; 
     printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link(1)), '1'); 

     if (! in_array(2, $links)) 
      echo '<li>…</li>'; 

} 



/** Link to current page, plus 2 pages in either direction if necessary */ 
    sort($links); 
    foreach ((array) $links as $link) { 
     $class = $paged == $link ? ' class="active"' : ''; 
     printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link($link)), $link); 
    } 

    /** Link to last page, plus ellipses if necessary */ 

    if (! in_array($max, $links)) { 
     if (! in_array($max - 1, $links)) 
      echo '<li>…</li>' . "\n"; 
     $class = $paged == $max ? ' class="active"' : ''; 
     printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link($max)), $max); 
    } 



    /** Next Post Link */ 

    if (get_next_posts_link()) 
     printf('<li>%s</li>' . "\n", get_next_posts_link()); 
     echo '</ul></div>' . "\n"; 
} 

답변

0

을 가진 동일 노력이

<?php 
     $accommodation_perpage = '6';   
     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;  
     query_posts("post_type=accommodation&posts_per_page=$accommodation_perpage&paged=$paged");     
     if(have_posts()) : 
      while(have_posts()) : the_post(); ?> 

과 평가 페이지 같이하십시오이다 이 코드를 function.php 파일에 추가하십시오.

function custom_numeric_pagination() { 
     if (is_singular()) 
      return; 
     global $wp_query; 
     if ($wp_query->max_num_pages <= 1) 
      return; 
     $paged = get_query_var('paged') ? absint(get_query_var('paged')) : 1; 
     $max = intval($wp_query->max_num_pages); 
     if ($paged >= 1) 
      $links[] = $paged; 
     if ($paged >= 3) { 
      $links[] = $paged - 1; 
      $links[] = $paged - 2; 
     } 
     if (($paged + 2) <= $max) { 
      $links[] = $paged + 2; 
      $links[] = $paged + 1; 
     } 
     echo '<div class="navigation"><ul>' . "\n"; 
     if (!in_array(1, $links)) { 
      $class = 1 == $paged ? ' class="active"' : ''; 

      printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link(1)), '1'); 

      if (!in_array(2, $links)) 
       echo '<li>…</li>'; 
     } 
     sort($links); 
     foreach ((array) $links as $link) { 
      $class = $paged == $link ? ' class="active"' : ''; 
      printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link($link)), $link); 
     } 
     if (!in_array($max, $links)) { 
      if (!in_array($max - 1, $links)) 
       echo '<li>…</li>' . "\n"; 

      $class = $paged == $max ? ' class="active"' : ''; 
      printf('<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url(get_pagenum_link($max)), $max); 
     } 
     echo '</ul></div>' . "\n"; 
    } 


function na_parse_request($query) { 

    if (! $query->is_main_query() || 2 != count($query->query) || ! isset($query->query['page'])) { 
     return; 
    } 

    if (! empty($query->query['name'])) { 
     $query->set('post_type', array('post', 'yourcustomposttypename', 'page')); 
    } 
} 
add_action('pre_get_posts', 'na_parse_request'); 
+0

안녕하세요. 답장을 보내 주셔서 감사합니다. 코드에 대한 정보를 알려주십시오. 내 페이지 매김 함수를 교체해야합니까, 아니면 둘 다 필요합니까? 또한 yourcustomposttypename을 숙박 시설이나 이와 비슷한 것으로 바꾸는 등 코드를 변경해야합니까? – user3063748

관련 문제