カスタム投稿タイプのページャー

ワードプレスのメモ

 

カスタム投稿タイプの記事シングルで、「前の記事へ」「次の記事へ」などのページ送りが動かなかったのでメモ。

※この例では、カスタム投稿タイプ = information、カスタム投稿分類 = information_tax

 

症状:投稿記事では正常に表示されるが、カストム投稿タイプではなにも表示されない。

 

テンプレートは「single.php」と同じ中身で「single-information.php」で、中身は一緒。

ページャー部はこんな感じ。

<?php if(get_next_post() || get_previous_post()) : ?>
<div class="pager pager-single clear">
	<?php previous_post_link('<div id="nav-prev">&lt; %link', '%title</div>', true,''); ?>
	<?php next_post_link('<div id="nav-next">%link', '%title &gt;</div>', true,''); ?>
</div>
<?php endif; ?>

 

 

先頭の

<?php if(get_next_post() || get_previous_post()) : ?>

 

がそもそも機能していないので、なんか間違ってるっぽくて、常時「div class=”pager pager-single clear”」が出力されていますが、これは置いといて。

 

ブログ記事はこれで動きますが、カスタム投稿タイプでは何も表示されず。

で、

リンクをカテゴリー内へ限定する際は、カスタムタクソノミーを指定しなければダメよ、ということらしいので、

<?php if(get_next_post() || get_previous_post()) : ?>
<div class="pager pager-single clear">
	<?php previous_post_link('<div id="nav-prev">&lt; %link', '%title</div>', true,'','information_tax'); ?>
	<?php next_post_link('<div id="nav-next">%link', '%title &gt;</div>', true,'','information_tax'); ?>
</div>
<?php endif; ?>

 

こんな感じに指定してあげる。

 

私の場合、ページャーブロックは別ファイルにしているので、条件分岐させておかないと、今度はブログ記事でページャーが表示されなくなります。

カスタム投稿タイプを新設したり名前を変えるたびに設定が必要になるのでちょっと面倒臭い。

 

 

あ~、記事のカスタム投稿タクソノミーを取得して代入すればいいのかな?

そのうちやってみよう。