It's my pc life…

ふと気がつけばいつの間にやら PC と出会い20年超の、初級者以上中級者未満の徒然 PC 生活記録

【WordPress】 前後の記事へのリンクを出力するテンプレタグ追加&修正

  1. WebDesign ・ Coding

 WordPress サイト作成のための基本となるテンプレートを作成中、index.php に前後の記事へのリンクを出力するためのテンプレを追加したものの、記述をミスってしてしかもしばらくそれに気付かず発狂しかけていたので 記念 教訓として残しておこうかと。

 今回追加したのは、メインページ用とアーカイブページ用、そして投稿個別ページ用のテンプレタグ。

 現在表示中の記事の前後記事へのリンクの出力テンプレートタグが上記。「previous」と入っている方が旧い記事、「next」と入っている方が新しい記事へのリンクを出力するタグになる。

 これらは単独では用いず、メインページ、アーカイブページ、そして個別ページそれぞれにしか表示しないようにするための条件分岐タグを記述する。

メインページとアーカイブページのみに表示する条件分岐タグ

 メインページのみに表示する条件分岐タグと、アーカイブページのみに表示する条件分岐タグは以下の通り。

 条件分岐タグ内「~」の部分に、記事リンク出力用テンプレタグを記述する。

 今回はメインページとアーカイブページは同様のデザインの記事表示テンプレタグを使用するため、これらふたつは書きのようにまとめて記述することができる。

 この記述を用いて、記事リンク出力のためのテンプレタグを記述したのが以下。

 画面全体のデザインやCSSでの装飾なども考え、記事リンク出力タグの前後に<p>~</p>タグを追加してclassを付与。
 また記事リンク出力のパラメータに「’&laquo; 前のページ’」「’ 次のページ ‘&raquo;’」を設定し、「« 前のページ」「次のページ »」というように分かりやすい記事リンクを出力。

 これでメインページとアーカイブページのみに、同デザインの記事リンク出力のための条件分岐タグの設定が完了。

 もしメインページではなく純粋にトップページ、すなわちメインページの最新となる一番最初のページのみに記事リンクを出力させたい場合は、

 上記のように複数に亘るページか否かを判断する条件分岐タグの is_paged() を記述すれば、メインページの一番最初のページ、すなわちトップページにのみ記事リンクの出力が可能となる。

個別投稿ページのみに表示する条件分岐タグ

 個別の投稿記事ページにのみ出力させるための条件分岐タグは以下の通り。

 上記と記事リンク出力タグを組み合わせ、投稿個別ページのみへの記事リンク出力を作成する。

 メイン&アーカイブページの記事リンク同様、前後を<p>タグで囲い、classを付与。パラメータには「前のページ」「次のページ」ではなく、記事タイトルを出力する「%link」を記述することで、投稿個別ページでのみ記事リンクは記事タイトルで表示するように設定した。

「posts」と「post」の違いが判らず、約半日が水の泡に

 ここからはミスの話。各記事リンク出力タグを設定したものの、なぜか投稿個別ページではうまく記事リンクが出力されないという事態に陥る。
 タグの記述ミス、CSSの設定ミス、バグやエラーなど様々な可能性を考えて調べるもどれもうまくいかず途方に暮れること約半日。ようやく気付いたのは超・凡ミスの単なる記述間違いだった……

 メインページやアーカイブページ用として使用する記事リンク出力用テンプレタグと、投稿個別ページ用記事リンク出力用テンプレタグは、非常に似ているがほんの一部分だけ異なっている。それは、

 上記の通り、「posts」か「post」、複数形の「s」が付かないか否かだけ。要は1件以上の投稿記事を出力するページ用かそうでないかを区分しているということだった……

 たかが「s」一文字のために貴重な休日の約半分が露に消えてゆくとは……泣きたい……

コメントを残す

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

コメント更新情報

トラックバック

トラックバックURL: http://itsmy.first-pclife.com/web-wordpress/webdesign-coding/post-144/trackback