2017-12-29 3 views
0

첫 번째 Wordpress 테마를 만들려고하고 페이지의 맞춤 게시물 유형을 사용하여 페이지 매김을 처리하는 데 문제가 있습니다.WP_query로 작업 할 페이지 번호를 얻을 수 없습니다

페이지 매김 링크가 표시되지만 페이지 링크를 클릭하면 "페이지를 찾을 수 없습니다"라는 메시지가 표시됩니다.

내 코드

...

<ul id="og-grid" class="og-grid"> 
       <?php 
        $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
        $query = new WP_Query(array(
         'post_type' => 'projects', 
         'post_status' => 'publish', 
         'posts_per_page' => 9, 
         'paged' => $paged 
        )); 

        while ($query->have_posts()) { 
         $query->the_post(); 
         $post_id = get_the_ID(); 
       ?> 

       <li> 
        <a href="<?php the_permalink();?>" data-largesrc="<?php echo the_post_thumbnail_url(); ?>" data-title="<?php the_title(); ?>" data-owner="<?php the_field('project-owner') ?>" data-date="<?php the_field('project-date') ?>" data-location="<?php the_field('project-location') ?>" data-contractor="<?php the_field('project-contractor') ?>" data-value="<?php the_field('project-value') ?>" data-description="<?php echo esc_html(get_the_excerpt()); ?>"> 
         <div class="project-roll-item" style="background: url('<?php the_post_thumbnail_url(); ?>') no-repeat center center; background-size: cover;"> 
          <h4 class="project-info"><?php the_title(); ?></h4> 
         </div> 
        </a> 
       </li> 

        <?php 
        } ?> 

       </ul> 

       <div class="pagination" style="margin-top: 50px;"> 
         <?php 
           echo paginate_links(array(
             'base'   => str_replace(999999999, '%#%', esc_url(get_pagenum_link(999999999))), 
             'total'  => $query->max_num_pages, 
             'current'  => max(1, get_query_var('paged')), 
             'format'  => '?paged=%#%', 
             'show_all'  => false, 
             'type'   => 'plain', 
             'end_size'  => 2, 
             'mid_size'  => 1, 
             'prev_next' => true, 
             'prev_text' => sprintf('<i></i> %1$s', __('Newer Posts', 'text-domain')), 
             'next_text' => sprintf('%1$s <i></i>', __('Older Posts', 'text-domain')), 
             'add_args'  => false, 
             'add_fragment' => '', 
           )); 
         ?> 
       </div> 

       <?php wp_reset_query(); ?> 

어떤 도움? 감사.

답변

0

페이지 매김을 위해, 아래의 플러그인을 사용하지 않고 워드 프레스에서 매우 간단한 단계입니다. 코드를 수정했습니다. 당신은

1 단계 테마 functions.php 파일에 다음과 같은 기능을 추가, 페이지 매김에 대한 간단한 단계 아래에 따를 수 :

<?php 
function pagination($pages = '', $range = 4) 
{ 
    $showitems = ($range * 2)+1; 
    global $paged; 
    if(empty($paged)) $paged = 1; 
    if($pages == '') 
    { 
     global $wp_query; 
     $pages = $wp_query->max_num_pages; 
     if(!$pages) 
     { 
      $pages = 1; 
     } 
    } 
    if(1 != $pages) 
    { 
     echo "<div class=\"pagination\"><span>Page ".$paged." of ".$pages."</span>"; 
     if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>&laquo; First</a>"; 
     if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo; Previous</a>"; 
     for ($i=1; $i <= $pages; $i++) 
     { 
      if (1 != $pages &&(!($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems)) 
      { 
       echo ($paged == $i)? "<span class=\"current\">".$i."</span>":"<a href='".get_pagenum_link($i)."' class=\"inactive\">".$i."</a>"; 
      } 
     } 
     if ($paged < $pages && $showitems < $pages) echo "<a href=\"".get_pagenum_link($paged + 1)."\">Next &rsaquo;</a>"; 
     if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>Last &raquo;</a>"; 
     echo "</div>\n"; 
    } 
} 
?> 

2 단계를. 스타일을 지정하려면 다음을 스타일 시트에 추가하십시오 (일반적으로 style.css).

.pagination { 
clear:both; 
padding:20px 0; 
position:relative; 
font-size:11px; 
line-height:13px; 
} 
.pagination span, .pagination a { 
display:block; 
float:left; 
margin: 2px 2px 2px 0; 
padding:6px 9px 5px 9px; 
text-decoration:none; 
width:auto; 
color:#fff; 
background: #555; 
} 
.pagination a:hover{ 
color:#fff; 
background: #3279BB; 
} 
.pagination .current{ 
padding:6px 9px 5px 9px; 
background: #3279BB; 
color:#fff; 
} 

3 단계 : 최종 단계 템플릿 파일에 넣어 :이 도움이 될 것입니다

<?php 
     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

     $query = new WP_Query(array('post_type' => 'projects', 
            'post_status' => 'publish', 
            'posts_per_page' => 9, 
            'paged' => $paged 
            'orderby' => 'date'          
            )); 
?> 
<ul id="og-grid" class="og-grid"> 
    <?php while ($query->have_posts()) : $query->the_post(); ?> 

    <li> 
        <a href="<?php the_permalink();?>" data-largesrc="<?php echo the_post_thumbnail_url(); ?>" data-title="<?php the_title(); ?>" data-owner="<?php the_field('project-owner') ?>" data-date="<?php the_field('project-date') ?>" data-location="<?php the_field('project-location') ?>" data-contractor="<?php the_field('project-contractor') ?>" data-value="<?php the_field('project-value') ?>" data-description="<?php echo esc_html(get_the_excerpt()); ?>"> 
         <div class="project-roll-item" style="background: url('<?php the_post_thumbnail_url(); ?>') no-repeat center center; background-size: cover;"> 
          <h4 class="project-info"><?php the_title(); ?></h4> 
         </div> 
        </a> 
       </li> 



    <?php endwhile; ?> 
</ul> 

<?php if (function_exists("pagination")) { 
    pagination($query->max_num_pages); 
} ?> 

희망. 문제가 있으면 알려주십시오.

+0

내 첫 번째 문제와 동일한 페이지 매김 링크 중 하나를 클릭해도 여전히 "페이지를 찾을 수 없음"이 표시됩니다. –

+0

"projects"라는 페이지를 만들었습니까? –

+0

페이지 이름과 사용자 정의 우편 유형 이름이 같으면 영구 링크가 충돌하고 페이지 매김에 페이지를 찾을 수 없음 오류가 표시됩니다. 또한 퍼머 링크를 다시 한 번 업데이트하십시오. –

0

페이지 매김에 사용하십시오.

<ul id="og-grid" class="og-grid"> 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args = array(
    'post_type' => 'projects', 
    'post_status' => 'publish', 
    'posts_per_page' => 9, 
    'paged' => $paged 
); 
$query = new WP_Query($args); 

while ($query->have_posts()) { 
    $query->the_post(); 
    $post_id = get_the_ID(); 
?> 

<li> 
    <a href="<?php the_permalink();?>" data-largesrc="<?php echo the_post_thumbnail_url(); ?>" data-title="<?php the_title(); ?>" data-owner="<?php the_field('project-owner') ?>" data-date="<?php the_field('project-date') ?>" data-location="<?php the_field('project-location') ?>" data-contractor="<?php the_field('project-contractor') ?>" data-value="<?php the_field('project-value') ?>" data-description="<?php echo esc_html(get_the_excerpt()); ?>"> 
    <div class="project-roll-item" style="background: url('<?php the_post_thumbnail_url(); ?>') no-repeat center center; background-size: cover;"> 
     <h4 class="project-info"><?php the_title(); ?></h4> 
    </div> 
    </a> 
</li> 

<?php 
} ?> 

</ul> 
<?php 
    echo paginate_links(array(
    'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 
    'format' => '?paged=%#%', 
    'current' => max(1, get_query_var('paged')), 
    'total' => $wp_query->max_num_pages, 
    'before_page_number' => '<span class="screen-reader-text">'.$translated.' 
    </span>' 
    )); 
    wp_reset_query(); ?> 
관련 문제