2016-09-06 5 views
0

커스텀 포스트 타입이 'author'이고 이미 archive-author.php를 작성했습니다. 여기에 wp-pagenavi 플러그인을 사용하는 문제가 있습니다.이 사용자 정의 포스트 타입에는 15 개의 게시물이 있습니다. $paged,'posts_per_page' =>5 내 archive-author.php 및 설정> 읽기 최대 게시물 수를 20으로 설정했지만 작성자 보관 파일에는 3 페이지가 있어야합니다. 첫 번째와 두 번째 페이지는 정상적으로 작동하지만 마지막 하나는 404 오류를 제공합니다. 이상한 일로이 bacome은 워드 프레스의 기본 포스트 유형에이 문제가 없을 때 발생합니다. 플러그인을 삭제하고 수동으로 숫자 매기기를 추가하여이 문제를 해결하려고 시도하지만, 페이지 매김에서 단 두 개의 링크 만 보여 주므로 세 번째 페이지도 표시되지 않습니다.커스텀 포스트 타입 아카이브 페이지 매김

여기 내 것은 website입니다. 이 문제는 내 맞춤 게시물 유형에서 비롯된 것 같습니다.

여기 내 아카이브 - author.php 코드 여기

<div class="writer-crit-box col-md-9 col-sm-8 col-xs-12"> 

        <div class="col-md-11 col-sm-11 col-xs-12"> 
         <?php 
         $paged = get_query_var('paged') ? get_query_var('paged') : 1; 
         $args = array('post_type' => 'Author','paged' => $paged,'posts_per_page' =>5); 
        $loop = new WP_Query($args); 
        while ($loop->have_posts()) : $loop->the_post(); ?> 
        <a href="<?php the_permalink(); ?>" class="writer-link col-md-12 col-sm-12 col-xs-12"> 

         <div class="writer-row1 col-md-12 col-sm-12 col-xs-12 hvr-glow"> 
           <div class="col-md-2 col-sm-3 col-xs-12 image-right"> 
            <?php the_post_thumbnail('post-thumbnail',array('class' => 'img-responsive')); ?> 
           </div> 
           <div class="col-md-10 col-xs-12 col-sm-9 col-xs-12 pull-right writer-content"> 
            <h3><?php the_title(); ?></h3> 
             <h4><?php the_field('auth-trans'); ?></h4> 
            <?php if (get_field('writer-bio')) { 
             echo '<p>'.get_field('writer-bio').'</p>';} ?> 

            <span>...</span> 
           </div> 
         </div> 
        </a> 

        <?php endwhile; // End of the loop. ?>   

        <div class="wp-pagenavi row"> 
         <div id="wp_page_numbers text-center col-sm-6 center-margin"> 
          <ul> 
           <li class="active_page text-center"><?php if(function_exists('wp_pagenavi')) { wp_pagenavi(array('query' => $loop)); } ?></li> 
          </ul> 
         </div> 
        </div>    
       </div> 

      </div> 

및 분류

<?php 

function p2p2_register_author(){ 
    $labels = array(
     'name'    => _x('همکاران', 'Author'), 
     'singular_name'  => _x('همکار','Author'), 
     'add_new'   => _x('افزودن همکار', ''), 
     'add_new_item'  => __('افزودن همکاران جدید'), 
     'edit_item'   => __('ویرایش همکار'), 
     'new_item'   => __('همکار جدید'), 
     'all_items'   => __('همه همکاران'), 
     'search_items'  => __('جست و جو همکار'), 
     'not_found'   => __('همکاری یافت نشد'), 
     'not_found_in_trash' => __('همکار در زباله دان یافت نشد'), 
     'parent_item_colon' => '', 
     'menu_name'   => 'همکار' 
    ); 

    register_post_type(
     'Author', 
     array (
      'labels'    => $labels, 
      'description' => 'ذخیره اطلاعات مربوط به همکاران', 
      'public'    => true, 
      'publicly_queryable' => true, 
      'show_ui'   => true, 
      'show_in_menu'  => true, 
      'menu_position'  => 2, 
      'query_var'   => true, 
      'rewrite'   => array('slug' => 'author'), 
      'capability_type' => 'post', 
      'has_archive'  => true, 
      'hierarchical'  => false, 
      'supports'   => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments') 
     ) 
    ); 
} 
     add_action('init', 'p2p2_register_author'); 
?> 

내 코드는 너희들이 나를 도울 수 있기를 바랍니다입니다. get_next_posts_link()get_previous_posts_link()

답변

0
<div class="writer-crit-box col-md-9 col-sm-8 col-xs-12"> 

       <div class="col-md-11 col-sm-11 col-xs-12"> 
        <?php 
        $posts = query_posts('post_type=author&orderby=title&order=asc&posts_per_page=12'); 
       while (have_posts()) : the_post(); ?> 
       <a href="<?php the_permalink(); ?>" class="writer-link col-md-12 col-sm-12 col-xs-12"> 

        <div class="writer-row1 col-md-12 col-sm-12 col-xs-12 hvr-glow"> 
          <div class="col-md-2 col-sm-3 col-xs-12 image-right"> 
           <?php the_post_thumbnail('post-thumbnail',array('class' => 'img-responsive')); ?> 
          </div> 
          <div class="col-md-10 col-xs-12 col-sm-9 col-xs-12 pull-right writer-content"> 
           <h3><?php the_title(); ?></h3> 
            <h4><?php the_field('auth-trans'); ?></h4> 
           <?php if (get_field('writer-bio')) { 
            echo '<p>'.get_field('writer-bio').'</p>';} ?> 

           <span>...</span> 
          </div> 
        </div> 
       </a> 

       <?php endwhile; // End of the loop. ?>   

       <div class="wp-pagenavi row"> 
        <div id="wp_page_numbers text-center col-sm-6 center-margin"> 
         <?php pagenavi(); ?> 
        </div> 
       </div>    
      </div> 

     </div> 





    // Add this function to your functions.php file 


/* Function that Rounds To The Nearest Value. 
Needed for the pagenavi() function */ 
function round_num($num, $to_nearest) { 
/*Round fractions down (http://php.net/manual/en/function.floor.php)*/ 
return floor($num/$to_nearest)*$to_nearest; 
} 

/* Function that performs a Boxed Style Numbered Pagination (also called Page Navigation). 
Function is largely based on Version 2.4 of the WP-PageNavi plugin */ 
function pagenavi($before = '', $after = '') { 
global $wpdb, $wp_query, $post; 

$pagenavi_options = array(); 
$pagenavi_options['pages_text'] = __('Page %CURRENT_PAGE% of %TOTAL_PAGES%:','viewr'); 
$pagenavi_options['current_text'] = '%PAGE_NUMBER%'; 
$pagenavi_options['page_text'] = '%PAGE_NUMBER%'; 
$pagenavi_options['first_text'] = __('First Page','viewr'); 
$pagenavi_options['last_text'] = __('Last Page','viewr'); 
$pagenavi_options['next_text'] = __('Next &raquo;','viewr'); 
$pagenavi_options['prev_text'] = __('&laquo; Previous','viewr'); 
$pagenavi_options['dotright_text'] = '...'; 
$pagenavi_options['dotleft_text'] = '...'; 
$pagenavi_options['num_pages'] = 3; //continuous block of page numbers 
$pagenavi_options['always_show'] = 0; 
$pagenavi_options['num_larger_page_numbers'] = 0; 
$pagenavi_options['larger_page_numbers_multiple'] = 5; 

//If NOT a single Post is being displayed 
/*http://codex.wordpress.org/Function_Reference/is_single)*/ 
if (!is_single()) { 

    $request = $wp_query->request; 
    //intval — Get the integer value of a variable 
    /*http://php.net/manual/en/function.intval.php*/ 
    $posts_per_page = intval(get_query_var('posts_per_page')); 

    //Retrieve variable in the WP_Query class. 
    /*http://codex.wordpress.org/Function_Reference/get_query_var*/ 
    $paged = intval(get_query_var('paged')); 
    $numposts = $wp_query->found_posts; 

    $max_page = $wp_query->max_num_pages; 
    if(is_home()){ 
     $max_page = $wp_query->max_num_pages - 1; 
    }else{ 
     $max_page = $wp_query->max_num_pages; 
    } 
    //echo '<script>alert("'.$max_page.'")</script>'; 
    //empty — Determine whether a variable is empty 
    /*http://php.net/manual/en/function.empty.php*/ 
    if(empty($paged) || $paged == 0) { 
     $paged = 1; 
    } 

    $pages_to_show = intval($pagenavi_options['num_pages']); 

    $larger_page_to_show = intval($pagenavi_options['num_larger_page_numbers']); 
    $larger_page_multiple = intval($pagenavi_options['larger_page_numbers_multiple']); 
    $pages_to_show_minus_1 = $pages_to_show - 1; 
    $half_page_start = floor($pages_to_show_minus_1/2); 
    //ceil — Round fractions up (http://us2.php.net/manual/en/function.ceil.php) 
    $half_page_end = ceil($pages_to_show_minus_1/2); 
    $start_page = $paged - $half_page_start; 
    if($start_page <= 0) { 
     $start_page = 1; 
    } 

    $end_page = $paged + $half_page_end; 
    if(($end_page - $start_page) != $pages_to_show_minus_1) { 
     $end_page = $start_page + $pages_to_show_minus_1; 
    } 
    if($end_page > $max_page) { 
     $start_page = $max_page - $pages_to_show_minus_1; 
     $end_page = $max_page; 
    } 
    if($start_page <= 0) { 
     $start_page = 1; 
    } 

    $larger_per_page = $larger_page_to_show*$larger_page_multiple; 
    //round_num() custom function - Rounds To The Nearest Value. 
    $larger_start_page_start = (round_num($start_page, 10) + $larger_page_multiple) - $larger_per_page; 
    $larger_start_page_end = round_num($start_page, 10) + $larger_page_multiple; 
    $larger_end_page_start = round_num($end_page, 10) + $larger_page_multiple; 
    $larger_end_page_end = round_num($end_page, 10) + ($larger_per_page); 

    if($larger_start_page_end - $larger_page_multiple == $start_page) { 
     $larger_start_page_start = $larger_start_page_start - $larger_page_multiple; 
     $larger_start_page_end = $larger_start_page_end - $larger_page_multiple; 
    } 
    if($larger_start_page_start <= 0) { 
     $larger_start_page_start = $larger_page_multiple; 
    } 
    if($larger_start_page_end > $max_page) { 
     $larger_start_page_end = $max_page; 
    } 
    if($larger_end_page_end > $max_page) { 
     $larger_end_page_end = $max_page; 
    } 
    if($max_page > 1 || intval($pagenavi_options['always_show']) == 1) { 
     /*http://php.net/manual/en/function.str-replace.php */ 
     /*number_format_i18n(): Converts integer number to format based on locale (wp-includes/functions.php*/ 
     $pages_text = str_replace("%CURRENT_PAGE%", number_format_i18n($paged), $pagenavi_options['pages_text']); 
     $pages_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $pages_text); 
     echo $before.'<div class="pagenavi">'."\n"; 

     if(!empty($pages_text)) { 
      echo '<span class="pages">'.$pages_text.'</span>'; 
     } 
     //Displays a link to the previous post which exists in chronological order from the current post. 
     /*http://codex.wordpress.org/Function_Reference/previous_post_link*/ 
     echo '<span class="pnlink">'; 
     previous_posts_link($pagenavi_options['prev_text']); 
     echo '</span>'; 

     if ($start_page >= 2 && $pages_to_show < $max_page) { 
      $first_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $pagenavi_options['first_text']); 
      //esc_url(): Encodes < > & " ' (less than, greater than, ampersand, double quote, single quote). 
      /*http://codex.wordpress.org/Data_Validation*/ 
      //get_pagenum_link():(wp-includes/link-template.php)-Retrieve get links for page numbers. 
      echo '<a href="'.esc_url(get_pagenum_link()).'" class="first" title="'.$first_page_text.'">1</a>'; 
      if(!empty($pagenavi_options['dotleft_text'])) { 
       echo '<span class="expand">'.$pagenavi_options['dotleft_text'].'</span>'; 
      } 
     } 

     if($larger_page_to_show > 0 && $larger_start_page_start > 0 && $larger_start_page_end <= $max_page) { 
      for($i = $larger_start_page_start; $i < $larger_start_page_end; $i+=$larger_page_multiple) { 
       $page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $pagenavi_options['page_text']); 
       echo '<a href="'.esc_url(get_pagenum_link($i)).'" class="single_page p1" title="'.$page_text.'">'.$page_text.'</a>'; 
      } 
     } 

     for($i = $start_page; $i <= $end_page; $i++) { 
      if($i == $paged) { 
       $current_page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $pagenavi_options['current_text']); 
       echo '<span class="current">'.$current_page_text.'</span>'; 
      } else { 
       $page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $pagenavi_options['page_text']); 
       echo '<a href="'.esc_url(get_pagenum_link($i)).'" class="single_page p2" title="'.$page_text.'">'.$page_text.'</a>'; 
      } 
     } 

     if ($end_page < $max_page) { 
      if(!empty($pagenavi_options['dotright_text'])) { 
       echo '<span class="expand">'.$pagenavi_options['dotright_text'].'</span>'; 
      } 
      $last_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $pagenavi_options['last_text']); 
      echo '<a href="'.esc_url(get_pagenum_link($max_page)).'" class="last" title="'.$last_page_text.'">'.$max_page.'</a>'; 
     } 
     echo '<span class="pnlink">'; 
     next_posts_link($pagenavi_options['next_text'], $max_page); 
     echo '</span>'; 

     if($larger_page_to_show > 0 && $larger_end_page_start < $max_page) { 
      for($i = $larger_end_page_start; $i <= $larger_end_page_end; $i+=$larger_page_multiple) { 
       $page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $pagenavi_options['page_text']); 
       echo '<a href="'.esc_url(get_pagenum_link($i)).'" class="single_page p3" title="'.$page_text.'">'.$page_text.'</a>'; 
      } 
     } 
     echo '</div>'.$after."\n"; 
    } 
    } 
} 
+0

사용자 지정 우편 금액을 설정하려면 admin default post 금액의 우편 번호 기본 통화에서 pagenavi() 기능으로 $ posts_per_page = 금액을 설정할 수 있습니다. –

+0

페이지 탐색을 표시하지 않고 모든 게시물 만 표시합니다. 너 무슨 뜻인지 정확히 모르겠다. – mkafiyan

+0

$ posts = query_posts ('post_type = 작성자 & orderby = 제목 & 순서 = 오름 & posts_per_page = 5'); 시작 루프 전에 이것을 추가하십시오 –

0

를 사용하여 오류를 끊고 페이지 오류로 멋진 얻을 것이다.

<div class="writer-crit-box col-md-9 col-sm-8 col-xs-12"> 
<div class="col-md-11 col-sm-11 col-xs-12"> 
<?php 
$paged = get_query_var('paged') ? get_query_var('paged') : 1; 
$args = array('post_type' => 'Author','paged' => $paged,'posts_per_page' =>5); 
$loop = new WP_Query($args); 
while ($loop->have_posts()) : $loop->the_post(); ?> 
<a href="<?php the_permalink(); ?>" class="writer-link col-md-12 col-sm-12 col-xs-12"> 
    <div class="writer-row1 col-md-12 col-sm-12 col-xs-12 hvr-glow"> 
       <div class="col-md-2 col-sm-3 col-xs-12 image-right"> 
        <?php the_post_thumbnail('post-thumbnail',array('class' => 'img-responsive')); ?> 
       </div> 
       <div class="col-md-10 col-xs-12 col-sm-9 col-xs-12 pull-right writer-content"> 
        <h3><?php the_title(); ?></h3> 
         <h4><?php the_field('auth-trans'); ?></h4> 
        <?php if (get_field('writer-bio')) { 
         echo '<p>'.get_field('writer-bio').'</p>';} ?> 
        <span>...</span> 
       </div> 
     </div> 
    </a> 
    <?php endwhile; // End of the loop. ?>   
    <div class="wp-pagenavi row"> 
     <div id="wp_page_numbers text-center col-sm-6 center-margin"> 
      <ul> 
       <li><?php echo get_next_posts_link('Next Page', $loop->max_num_pages); ?></li> 
       <li><?php echo get_previous_posts_link('Previous Page'); ?></li> 
      </ul> 
     </div> 
    </div>    
</div> 
</div> 
+0

아무런 장애가있는 경우 이것을 시도하고 저를 공유하십시오. –

+0

아니요. 내 문제를 해결하지 못함 :( – mkafiyan

+0

동일한 세 번째 페이지가 표시되지 않는 오류는 무엇입니까 –

관련 문제