<?php previous_post_link('« %link','%title',TRUE) ?>
<?php next_post_link('%link »','%title',TRUE) ?>
投稿ページ内に上記コードで前後ページのページ遷移をしたいと思っております。
同一カテゴリー内でのページ遷移にしたいので第3引数にTRUEを入れておりますが、カテゴリー関係なくページ遷移してしまいます。
どんな理由が考えられますか?
single.php
<?php
if ( in_category(array('Aカテゴリー','Bカテゴリー') ) ) {
get_template_part( 'single' , 'a' );
}
else {
get_template_part( 'single' , 'b');
}
?>
single-b.php
<?php if(have_posts()): while(have_posts()): the_post(); ?>
<?php get_template_part('content'); ?>
<?php get_template_part('postinfo'); ?>
<?php comments_template(); ?>
<?php get_template_part('pagenation'); ?>
<?php endwhile; endif; ?>
pagenation.php
<p id="pagenation">
<span id="oldpage"><?php previous_post_link('%link','< %title',true); ?></span><span id="newpage"><?php next_post_link('%link','%title >',true); ?></span>
</p>
上記テンプレートの切り替えが影響しているのでしょうか?
よろしくお願いいたします。
利用中のテーマの「functions.php」に以下のコードを追加すると、ナビゲーションリンクのカテゴリー内限定に対応させる事が可能です。
※「Intuitive Custom Post Order」プラグインによる並べ替えのみ確認しました。
・「functions.php」
function where_re_override( $where, $in_same_term ) { if ( is_single() && $in_same_term == true ) { $taxonomy = 'category'; // ※タグまたはカスタムタクソノミーの場合は、ここを'post_tag'または'[タクソノミーのスラッグ]'に変更します。 $terms = get_the_category(); // $terms = get_the_terms( $post->id, $taxonomy ); // ※タグまたはカスタムタクソノミーに対応させる場合、上記の行の替わりに有効にします。 $where .= " AND tt.taxonomy = '" . $taxonomy . "' AND tt.term_id IN (" . $terms['0']->term_id . ")"; } return $where; } add_filter( 'get_previous_post_where', 'where_re_override', 10, 2); add_filter( 'get_next_post_where', 'where_re_override', 10, 2 );
※「$excluded_terms」による除外するカテゴリーの指定には対応していません。
※「$taxonomy」は「category」(カテゴリー)を指定していますが、タグやカスタムタクソノミー(※何れか1種類)に対応させる事も可能です。(上記コード内と次のドキュメントを参照してください。)
・関数リファレンス/get the terms
http://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_the_terms
補足です。
きちんとカテゴリー毎にページ遷移ができている他のテーマで試したところ、やはりカテゴリーに関係なくページ遷移してしまいます。
ということはテーマが問題ではなく、投稿方法やカテゴリー設定方法に問題があるのでしょうか?それぞれSLUGを付けてカテゴリーを作成しており、投稿時に属したいカテゴリーを選択して投稿しているだけなのですが…。
可能性の部分も含め、わかる方がいらっしゃいましたら教えてください。
正常に動作しない投稿に複数のカテゴリーが指定されていないか確認してみてください。
複数カテゴリーも指定しておりません。
同じタグが設定してある投稿もありますが、設定されていないページも関係なく遷移します。
よろしくお願いします。
WordPressのバージョンはいくつでしょう?
動作環境は満たしているでしょうか?
・ WordPress 日本語
http://ja.wordpress.org/
-----------------------------------------------------------
WordPress 日本語版の動作環境
PHP バージョン 5.2.4 以上 (PHP 5.4 以上推奨)
MySQL バージョン 5.0 以上 (MySQL 5.5 以上推奨)
プラグインやテーマによっては、上記バージョンでは動作しないものも確認されています。事前にご利用予定のプラグインやテーマとサーバー環境の互換性をご確認ください。また、3.1 以前の旧バージョンの動作環境については、サーバ要件ドキュメンテーションをご覧ください。
-----------------------------------------------------------
> きちんとカテゴリー毎にページ遷移ができている他のテーマで試したところ、やはりカテゴリーに関係なくページ遷移してしまいます。
カテゴリーごとにページ遷移できている事は、どのような方法で確認したのでしょう?
WordPressに同梱されている公式テーマ「Twenty Fifteen」や「Twenty Thirteen」でも動作しませんか?
「single.php」にナビゲーションタグのカテゴリー内限定をtrue指定で追加して試してみてください。(テーマデフォルトのナビゲーション用のコードの直前または直後がいいと思います。)
previous_post_link( '%link', '<span class="meta-nav">« Previous Post</span>%title', true );
next_post_link( '%link', '<span class="meta-nav">Next Post »</span>%title', true );
PHP5.3.3
MySQL5.0
ワードプレスは最新版4.2.2です。
公式テーマでもtrueを付けて確認しましたが、やはりカテゴリーに関係なく遷移してしまいます。
よろしくお願いします。
一応、プラグインをすべて停止した状態でも試してみてください。
Intuitive Custom Post Orderというプラグインを停止したら正常に動きました!
本当にありがとうございます!
ちなみにこのプラグインは投稿記事の順番を変更できるプラグインなんですけど、カテゴリー内ページ遷移が可能な投稿記事の順番を変更できるプラグインをご存知でしたら教えてくださいませ。
よろしくお願いいたします。
動作の確認お願いします。