WordPressで連載形式記事のナビゲーションを作ってみる

WordPressで連載形式記事のナビゲーションを作ってみる

VBAの入門記事を連載形式で書いたことがあるんですが、その連載記事だけ集めたナビゲーションみたいなものを実装してみましたので、方法を書き残してみます。


完成図

130520-1

こんな感じのリストが、特定の記事のみ末尾に追加されています。

この記事の末尾に実際のものがありますー

実装

リストを作る

<ul>
	<li><a href="http://x1">第1回の記事</a></li>
	<li><a href="http://x2">第2回の記事</a></li>
	<li><a href="http://x3">第3回の記事</a></li>
</ul>

こんな感じの、各記事へのリンク付きリストが並んでるものをイメージ。でもこのままだと、現在そのページに居るときもリンクが貼られてしまいます。2回目の記事を見てるときは2回目記事へのリンクは不要ですよね。

<ul>
	<li><?php if(!is_single(記事ID1)): ?><a href="http://x1"><?php endif; ?>第1回の記事<?php if(!is_single(記事ID1)): ?></a><?php endif; ?></li>
	<li><?php if(!is_single(記事ID2)): ?><a href="http://x2"><?php endif; ?>第2回の記事<?php if(!is_single(記事ID2)): ?></a><?php endif; ?></li>
	<li><?php if(!is_single(記事ID3)): ?><a href="http://x3"><?php endif; ?>第3回の記事<?php if(!is_single(記事ID3)): ?></a><?php endif; ?></li>
</ul>

その記事IDじゃないときだけ、aタグを表示するように書いてみました。

このリストを、特定の記事のときに表示されるようにしていきます。single.phpに全部書いてもいいんですが、量が多くなってくると見づらいし、single.php自体のサイズを無駄に増やすのも良くないのかなと思うので、別ファイルに書いておいて特定のページだけ読み込む、という感じにしようと思います。

今回は、上記のコードを、テーマファイル(…/wp-content/themes/テーマ名/)の直下にsample-navi.phpという名前で保存してみました。

インクルード(読み込み)する

<?php get_template_part('sample-navi'); ?>

single.phpのリストを表示したいところに、ファイル名を指定してこのように書くと、読み込んでくれます。

このままだと全部のページに例のリストが表示されてしまうので、

<?php if (has_tag('タグのスラッグ')): ?>
	<?php get_template_part('sample-navi'); ?>
<?php endif; ?>

このように書くと、特定のタグを持っている場合のみインクルードしてくれます。

特定のカテゴリだけ、という括りにしたい場合は1行目をこちらに差し替え。

<?php if (in_category('カテゴリのスラッグ')): ?>

タグとかカテゴリ関係なくて、記事を指定したい場合は

<?php if (is_single(array(記事ID1,記事ID2,記事ID3))): ?>

のように、IDをカンマで区切って書いていけばその記事にだけ適用されます。

多用するなら…

と、ここまで手書きでごねごねしてたわけですが、シリーズものが多いのならカスタムタクソノミー機能を使ったほうが楽なのかなー、という気がします。

今まで触る機会がなかったのであんまりカスタムタクソノミーってよくわかっていないのですがw 自分で出来るようになったらまた書きたいですね。

公開日:2013/05/20
更新日:2014/06/10

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)

YouTubeでQ&Aコンテンツを企画しています

運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。