単一記事(single.php)について。 単一記事へのリンク元はフロントページ、カテゴリーページ、アーカイブページ等数多くあるが、同一記事で、フロントページやアーカイブページから単一ページと、カテゴリーページから単一ページの表示を変えようと思って色々調べたが、難しそうなので断念した。カテゴリー別なら差別化ができるようだ。 まずsingle.phpをコピペでsingle-xx.phpを作成。single.phpは以下のような感じで、作成したテンプレートにリンクさせる。以下以外は削除。
<?php if (in_category(‘cat-srug’)): get_template_part(‘single’,’xx’); endif; ?>
次にsingle-xx.phpの編集。カテゴリーページにあったヘッダー(どのカテゴリーの記事か分かりやすくするため)を流用するため、category.phpから該当部分をコピペして、太字部分を変更。
<h1><?php $cat=get_the_category(); $cat=$cat[0]; printf( __( ‘Category Archives: %s’, ‘twentythirteen’ ) , $cat->cat_name); ?></h1>
次に、next/previousリンクを同一カテゴリ内のみでリンクするようにする。functionのtwentythirteen_post_nav()を流用して、functions.phpのtwentythirteen_post_nav()をコピペして別関数を作成。以下のように太字を追加すると、同一カテゴリーだけの表示になる。
<?php previous_post_link( ‘%link’, _x( ‘<img src=”url” /img> ‘, ‘Previous in category’, ‘twentythirteen’ ) ,true ); ?> <?php next_post_link( ‘%link’, _x( ‘<img src=”url” /img>’, ‘Next in category’, ‘twentythirteen’ ) ,true ); ?>
本当は、next/previousリンクは、月別アーカイブから単一記事を表示した場合は、月別アーカイブ内で、カテゴリーページから単一記事表示した場合はカテゴリー内でリンクが変わる、みたいなことをしたかったのだが、まあ、目的の半分は達成したかな。今回、カテゴリ別で表示を変えることはしなかったので、結局single.phpは1つしか必要なかった。 ついでに単一ページにコメント欄追加。
プラグインのjetpackを使ってみた。コメント欄以外にも色々機能があるようなので、便利かも。
コメントを残す