2016-05-14 7 views
0

カスタム分類の用語とカテゴリ別の既定の投稿によってカスタム投稿の種類をページすることを試みていますが、機能しません。私はWordPressの初心者です。私はたくさんのグーグルでやっていて、私の問題を解決するための詳細な解決策を見つけられませんでした。WordPressのページネーションは、カスタムの投稿の種類とタクソノミの用語には作用しません。

誰でもあなたの答えを共有してください、それは本当に感謝しています。

注:カスタムテーマを作成しました。ここで

は私の分類-product_category.phpページのコードです:

<?php get_header();?> 

<div class="container-fluid pages"> 
<div class="container" style="margin-top: 10%;"> 
    <div class="row"> 
    <div class="col-sm-8"> 
     <div class="panel panel-default"> 
      <?php $term = get_queried_object(); 
      $taxonomy = get_taxonomy($term->taxonomy); 

      ?> 
      <div class="panel-heading"><h4><?php echo 'محصولات : '.$term- >name;?></h4></div> 
      <div class="panel-body"> 
       <?php 

       $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
        $args = array('post_type'=>'my_product', 
         'taxonomy'=>$taxonomy->name, 
         'posts_per_page'=> 1, 
         'term'=>$term->slug, 
         'paged'=>$paged); 

        $query = new WP_Query($args); 
       if ($query->have_posts()) { 
        while ($query->have_posts()): $query->the_post(); ?> 
         <div class="thumbnail"> 
          <?php if (has_post_thumbnail()) { 
           the_post_thumbnail('featured'); 
          } ?> 
          <div class="caption caption-content"> 
           <h3 class="product-name"><?php the_title(); ?></h3> 
           <p class="text-muted"> 
            <!-- <strong>نویسنده:</strong> <?php  //the_author();?> --> 
            &nbsp;&nbsp; تاریخ: <?php the_date(); ?> </p> 
           <p> <?php the_excerpt(); ?> </p> 
           <div> 
            <p class="price-box"> 
             <i class="fa fa- circle">&nbsp;&nbsp;&nbsp;</i>قیمت: 
             <?php if (the_field('price') == '')  { 
              // echo "00.00"; 
             } else { 
              the_field('price'); 
             } ?> 
            </p> 

           </div> 
          </div> 
          <hr> 
         </div> 
        <?php endwhile; 
       } 
       else { 
        echo '<h3>هیچ موردی درین بخش یافت نشد.</h3>'; 
       } 
       ?> 

       <!-- pagination here --> 
       <p> 

         <nav> 
          <?php if (function_exists('custom_pagination' )) { 
           custom_pagination($custom_query- >max_num_pages,"", $paged); 
          } ?> 
         </nav> 

       <?php wp_reset_postdata(); ?> 
       </p> 

      </div> 

     </div> 
    </div> 
     <?php get_sidebar(); ?> 

</div> 
</div> 
</div> 
<?php get_footer();?> 

私は、次のページをクリックすると、それはURLがまだあるインデックスページに私をリダイレクトします。 http://localhost/goldsotre/product_category/ring/page/2/ Custom_pagination機能:

function custom_pagination($numpages = '', $pagerange = '', $paged='') { 

if (empty($pagerange)) { 
    $pagerange = 2; 
} 
global $paged; 
if (empty($paged)) { 
    $paged = 1; 
} 
if ($numpages == '') { 
    global $wp_query; 
    $numpages = $wp_query->max_num_pages; 
    if(!$numpages) { 
     $numpages = 1; 
    } 
} 
$pagination_args = array(
    'base'   => get_pagenum_link(1) . '%_%', 
    'format'   => 'page/%#%', 
    'total'   => $numpages, 
    'current'   => $paged, 
    'show_all'  => False, 
    'end_size'  => 1, 
    'mid_size'  => $pagerange, 
    'prev_next'  => True, 
    'prev_text'  => __('&laquo;'), 
    'next_text'  => __('&raquo;'), 
    'type'   => 'plain', 
    'add_args'  => false, 
    'add_fragment' => '' 
); 

$paginate_links = paginate_links($pagination_args); 

if ($paginate_links) { 
    echo "<nav class='custom-pagination'>"; 
    echo "<span class='page-numbers page-num'>Page " . $paged . " of " . $numpages . "</span> "; 
    echo $paginate_links; 
    echo "</nav>"; 
} 
+0

スペースを削除してみてください。カスタムページ設定機能を貼り付けてください。 $ custom_query-> max_num_pages〜$ custom_query-> max_num_pages –

答えて

1

チャンスがブログページでposts_per_page上書きしまっているが、ほとんどの値で示しました。

私はfunctions.phpでこれを試してみてください、あなたはpaginate_link()機能を使用していると仮定します。

add_action('pre_get_posts', function($query) 
{ 
    if ($query->is_tax('product_category')) { 
     $query->set('posts_per_page', 1); 
    } 
}); 

product_categoryは、アーカイブページの分類であることを確認してください。 This articleが役に立つかもしれません。

1

以下の関数を使用するとその代わりに、私はページネーションのリンクを見ることができますが、次のリンクをクリックすると、私は404ページを取得します。

$big = 999999999; 
echo paginate_links(array(
'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))), 
'format' => '?paged=%#%', 
'current' => max(1, get_query_var('paged')), 
'total' => $query->max_num_pages)); 
関連する問題