0

Webサイトにカスタム投稿タイプ「ポートフォリオ」を作成しました。カテゴリ、投稿などを作成できます。カテゴリに応じてすべての投稿を表示するカテゴリページを作成し、archive.phpの次のコードチャンクを使用して作成しました。

<?php $cat = get_query_var('cat');?>
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
 <?php query_posts('showposts=3&post_type=portfolio&category_name=web-design&order=ASC&paged='.$paged); ?>    
 <div id="page" class="category_post grid_12">    
<?php while (have_posts() ) : the_post(); ?>
<div class="grid_3 single-post">
<div class="list-post">
<a class="read-more" href="<?php echo get_permalink()?>"><?php echo                   the_post_thumbnail(array(213,185));?></a>
</div>
 <p>
 <?php $content=trim(get_field("description"));
  echo $half_content=substr($content,0,88)."..." ?>
  <a class="category-link" href="<?php echo get_permalink()?>">Read more</a>
  </p>
</div>
  <?php endwhile; ?>
  <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>

また、ページネーションにwp_pagenaviプラグインを使用しています。私の問題は、2ページ目、つまり次のページをクリックしても、新しい投稿が表示されないことです。上記のコードの何が問題になっているのか教えてください。

4

2 に答える 2

0

カスタム投稿タイプのhas_archiveプロパティがtrueに設定されていますか?テンプレートコードで投稿をクエリするためにアーカイブテンプレートまたはトリングを使用していますか?

于 2012-11-13T20:49:56.100 に答える
0
        Add custom_pagination function in your function.php file 

         `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) . '%_%',
               'total'           => $numpages,
               'current'         => $paged,
              'show_all'             => False,
              'end_size'             => 1,
              'mid_size'             => $pagerange,
              'prev_next'        => False,
              'prev_text'        => __('&laquo;' , 'swift'),
              'next_text'        => __('&raquo;' , 'swift'),
              'type'             => 'array',
              'add_args'             => false,
              'add_fragment'     => ''
             ); 
              $paginate_links = paginate_links($pagination_args);
               echo '<div class="Pagination-Num"><ul>';
                  foreach ( $paginate_links as $paginate_link ) {
                         echo "<li> $paginate_link </li>";
                    }
                echo '</ul></div>';
        }
         `




  And In your Custom page template add the following code...

  <?php
    /**
     * Template Name: Custom Page
     * The custom page template file
     */
 ?>

    <?php get_header(); ?>

    <h2>Posts</h2>

    <?php 

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

      $custom_args = array(
          'post_type' => 'post',
          'posts_per_page' => 2,
          'paged' => $paged
        );

      $custom_query = new WP_Query( $custom_args ); ?>

      <?php if ( $custom_query->have_posts() ) : ?>

        <!-- the loop -->
        <?php while ( $custom_query->have_posts() ) : $custom_query->the_post(); ?>
          <article class="loop">
            <h3><?php the_title(); ?></h3>
            <div class="content">
              <?php the_excerpt(); ?>
            </div>
          </article>
        <?php endwhile; ?>
        <!-- end of the loop -->

        <!-- pagination here -->
        <?php
          if (function_exists(custom_pagination)) {
            custom_pagination($custom_query->max_num_pages,"",$paged);
          }
        ?>

      <?php wp_reset_postdata(); ?>

      <?php else:  ?>
        <p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
      <?php endif; ?>

    <?php get_footer(); ?>

私はそれがうまくいくと確信しています。

于 2014-12-09T06:21:12.007 に答える