それで、私は2度目のカスタム分類法をめちゃくちゃにしています、そして両方の例で私はquery_postsまたはWP_queryシナリオのいずれかでposts_per_page引数を使用するというこの問題に遭遇しました。 [次へ]または[前へ]ボタンをクリックすると404エラーが表示されます。カスタムパーマリンク構造を使用しても、デフォルトを使用しても同じ結果になります。ページ上の投稿数を管理する唯一の方法は、ダッシュボードの閲覧設定を使用することです。
私はこの同じ問題についてかなりの数の言及を見つけましたが、上で言及されたDashboard設定を除いてまだ実用的な解決策を見つけていません:
wordpress.org/support/topic/custom-taxonomy-navigation-problem-paged1-works-paged2-doesnt?replies=8#post-2093828
core.trac.wordpress.org/ticket/16168
wordpress.org/support/topic/custom-taxonomies-with-pagination-getting-404-page-not-found?replies=6#post-2093414
だから、ここで問題に取り組んでいるサイトイムです:
http://www.purekreation.com (ナビゲーション内のいずれかのセクションをクリックしてから、下部にある前のページに移動してみてください)
これが私の現在の(動作していない)コードです。
<?php get_header(); ?>
<div id="art">
<?php global $query_string, $paged, $wp_query, $wp;
$count = 0;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
echo $paged;
?>
<?php $term = get_query_var('term'); echo $term;?>
<?php $tax = get_query_var('taxonomy'); echo $tax;?>
<?php
$taxquery=new WP_Query(array('tax_query'=>array(array('taxonomy'=>$tax,'field'=>'slug','terms'=>$term)),'post_type'=>'art','showposts'=>1,'paged'=>$paged));
while ( $taxquery->have_posts() ) : $taxquery->the_post(); ?>
<?php $genre = wp_get_post_terms($post->ID, 'genre');?>
<div id="post-<?php the_ID(); ?>" <?php post_class('post-'.$genre[0]->slug.' post-art');?>>
<h3 class="work-title"><?php the_title();?></h3>
<?php get_the_10(); ?>
<div class="the-content">
<?php the_content(); ?>
</div>
<footer class="COL-10 clear">
<small class="post-meta"><?php $terms = get_the_term_list( $post->ID, 'genre', 'Portfolio: ', ' ', '' ); echo $terms;?></small>
<small class="post-meta">Project: <?php the_tags( '',', ','');?></small>
<small class="post-meta">Client: <?php $meta = get_post_meta($post->ID, 'client', true); if($meta==''){echo 'Self';}else{echo $meta;}?></small>
<small class="post-meta right"><a href="#masthead">Back to top</a></small>
<div class="dash"></div>
</footer>
</div><!-- #post-## -->
<?php $count++; ?>
<?php endwhile; ?>
<div id="nav-below" class="pagination">
<?php if($taxquery->max_num_pages>1){?>
<?php
for($i=1;$i<=$taxquery->max_num_pages;$i++){?>
<a href="<?php bloginfo('url');?>/?<?php echo $tax;?>=<?php echo $term;?>&<?php echo 'paged=' . $i; ?>" <?php echo ($paged==$i)? 'class="selected"':'';?>><?php echo $i;?></a>
<?php
}
if($paged!=$taxquery->max_num_pages){?>
<a href="<?php bloginfo('url');?>/?<?php echo $tax;?>=<?php echo $term;?>&<?php echo 'paged=' . $i; //next link ?>">></a>
<?php } ?>
<?php } ?>
</div>
<?php // Reset Post Data
wp_reset_postdata();
// End the loop. Whew.?>
</div><!-- end #art -->
<?php get_footer(); ?>
私は最も熟練したPHP人ではありませんが、私はWordpressについてまともな量を知っています、そしてこの問題は私に文字通りそれの上に睡眠を失っています。誰かがこの問題について何らかの意見を持っているならば、それは大いに感謝されるでしょう。
それでなければなりません..
$paged = (get_query_var('page')) ? get_query_var('page') : 1;
ページ付け注:get_query_var( 'page')を設定する必要があります。あなたのクエリがページネーションで動作するようにしたい場合。 Wordpress 3.0.2以降、get_query_var( 'paged')の代わりにget_query_var( 'page')を実行します。 WP_Query()のページ付けパラメータ 'paged'は変わりません。