vicuna CMS テーマの修正 (previous_post_link()関数・next_post_link()関数の追加)

vicuna CMS – WordPress Theme Ext. Custom (以下 vicuna とします)の修正に関する内容も4回目。今回はprevious_post_link()関数・next_post_link()関数についてです。

previous_post_link()関数・next_post_link()関数は投稿記事に、その前後の投稿へのリンクを書き出してくれる関数です。引数を指定しなければあらかじめ設定されている書式と記事のタイトル名をリンクとして書き出してくれます(詳細は例のごとく WordPress CodexWordPress Codex日本語版 やグーグル先生に聞いてみてください)。

…でvicunaテーマへのこれらのコードの挿入ですが、挿入自体は至って簡単。ただ記事の上下それぞれにあるリンクの書式が違うので、コードを変更する前の書式に合うように引数を設定して挿入します。

まずは記事の下部に設置されているリンクのためのコードから(引数の説明をするためにはこの方が楽なので…) 。

		<ul class="flip" id="flip2">
< ?php
	if ( $newer_post ) :
?>
			<li class="newer">< ?php _e('Newer'); ?>: < ?php next_post_link('%link'); ?></li>
< ?php
	endif;

	if ( $older_post ) :
?>
			<li class="older">< ?php _e('Older'); ?>: < ?php previous_post_link('%link'); ?></li>
< ?php
	endif;
 ?>
		</ul>
< ?php
	endif;	// if (have_posts()) : the_post();
?>

こちらはリンク先の記事のタイトルをリンクのための文字列として書き出すだけなので、previous_post_link()関数・next_post_link()関数の引数は%linkだけ。この引数を指定しなければリンク先の記事のタイトルとともに、新しい記事では「«」、古い記事では「»」が付随した文字列がリンクになります。ここではリンク先の記事のタイトルだけがほしいので%linkを引数として指定しています。

ちなみにタイトルの文字列の前後にHTMLタグなどを含ませたい場合は次のようにします。

< ?php previous_post_link('<strong>%link'); ?>

次に記事上部に設置されているリンクを書き出すためのコードがこちら。

	<ul class="flip" id="flip1">
< ?php
	if ($newer_post) :
?>
		<li class="newer">< ?php next_post_link('%link',__('Newer')); ?></li>
< ?php
	endif;

	if ( $older_post ) :
?>
		<li class="older">< ?php previous_post_link('%link',__('Older')); ?></li>
< ?php
	endif;
?>
	</ul>
	<h1>< ?php the_title(); ?></h1>

previous_post_link()関数・next_post_link()関数の引数の内、最初の引数・%linkは前述の通り。ただ、ここではリンク先のタイトルではなく、固定の文字列をリンクとして表示したいので2番目の引数で指定します。

2番目の引数はリンクの文字列をあらかじめ指定しておきたい場合に設定します。何も指定しなければリンク先の記事タイトルが書き出されます。これで表示された記事より新しい記事へのリンクを「Newer」として、古い記事へのリンクを「Older」して表示することができます。

これで個別記事における、その前後の記事へのリンクの修正は完了。これもそんなに悩むことなく設置できると思います。ちなみにこのコードを変更するファイルはsingle.phpファイルとpage.phpファイルです。

ただし注意点が一つ。このprevious_post_link()関数・next_post_link()関数は投稿記事を表示するためのループ内に設置する必要があります。ループの外に設置して「表示されないよ… :cry:」と悩まないように! 😀

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です