前後に記事があるときだけナビゲーションを出す

WordPressでは、next_post_link()、next_previous_link()という関数で、前後のナビゲーションが出力できるんですが、これをUL-LIでデザインしたところ、記事がないときに空のULが出てしまうことに。

<ul>
<?php if(next_post_link('<li class="newer">Newer : %link </li>')) : ?><?php endif ; ?>
<?php if(previous_post_link('<li class="older">Older : %link </li>')) : ?><?php endif ; ?>
</ul>

Validatorエラーが出て気持ち悪いので、一計を案じました。
前後の記事があるときだけ、と思って

というif文で囲んでみたところ、うまくいきませんでした。next_post_linkは、リンク出力用の関数で、boolean値ではないからです。

もう少し調べてみたところ、前後の記事を判定する関数がありましたので、これを使わせてもらいました。

広告

<?php if(get_next_post() || get_previous_post()) : ?>
	<ul>
	<?php if(next_post_link('<li class="newer">Newer : %link </li>')) : ?><?php endif ; ?>
	<?php if(previous_post_link('<li class="older">Older : %link </li>')) : ?><?php endif ; ?>
	</ul>
<?php endif; ?>

これで、前後のどちらかに記事があるときのみ出力されるようになりました、と。

About: dacelo


5 thoughts on “前後に記事があるときだけナビゲーションを出す”

  1. 前後の記事のナビゲーションに使わせていただきました。
    ありがとうございます。

    かじわら

Leave a Reply

Your email address will not be published. Required fields are marked *