ご紹介するテンプレートタグ
この記事で紹介するテンプレートタグは、以下の視点で選んでいます。
・使用頻度が高い(と思われる)
・複数のタグで構成されるHTMLに化ける
まだWordpress歴が浅く、ご紹介できているタグは少ないのですが、ネタが溜まったら追加していこうと思います。
なお、タグの説明は書籍「WordPress標準デザイン講座」を参考にさせて頂きました。
ちなみにCSSの記述に影響がないHTMLコードは割愛している部分があります(属性など)。ご了承ください。
the_category();
現在の(または指定したIDの)投稿が属するカテゴリー名とリンクを掃き出します。
<ul class=“post-categories”>
<li><a href=“カテゴリー1一覧” rel=“category tag”>カテゴリー1名称</a></li>
<li><a href=“カテゴリー2一覧” rel=“category tag”>カテゴリー2名称</a></li>
・・・
</ul>the_tags();
現在の投稿に付けられらタグ名とリンクを掃き出します。
タグ:<a href=“タグ1一覧“ rel=“tag”>タグ1名称</a>,<a href=“タグ2一覧“ rel=“tag”>タグ2名称</a>・・・自分はリスト表示されるものはulタグでマークアップしたいので、「the_tags( ‘<ul><li>’, ‘</li><li>’, ‘</li></ul>’ );」といった具合に引数を指定しています。(※引数についてはWordPress Codex 日本語版 を参照。)
<ul>
<li><a href=“タグ1一覧” rel=“tag”>タグ1名称</a></li>
<li><a href=“タグ2一覧” rel=“tag”>タグ2名称</a></li>
・・・
</ul>wp_nav_menu();
カスタムメニュー(管理メニュー>外観>カスタマイズ>メニュー で設定したメニュー)のリンクを掃き出します。
<ul>
<li><a href=“メニュー1リンク”>メニュー1名称</a></li>
<li><a href=“メニュー2リンク”>メニュー2名称</a></li>
・・・
</ul>the_posts_pagination();
アーカイブベージにて、ページネーション(ページ送りのナビゲーション)を掃き出します。

実用的な例として、以下のように引数を指定した状態のHTMLをご紹介します。(※引数についてはWordPress Codex 日本語版 を参照。)
the_posts_pagination(array(
‘prev_text’ => ‘[prev_textのテキスト]’,
‘next_text’ => ‘[prev_textのテキスト]’
));
<nav class="navigation pagination" role="navigation">
<h2 class="screen-reader-text">ナビゲーション見出し</h2>
<div class="nav-links">
<a class="prev page-numbers" href="#">[prev_textのテキスト]</a>
<a class="page-numbers" href="#">1</a>
<span aria-current="page" class="page-numbers current">2</span>
<a class="page-numbers" href="#">3</a>
<a class="next page-numbers" href="#">[next_textのテキスト]</a>
</div>
</nav>で、CSSはどう書くか?
自分の場合、テンプレートタグに置き換えるブロックを任意クラス名のdivで囲み、囲みdivからの位置関係でCSSを記述しています。(Wordpressが掃き出すクラス名はシンプルなので、詳細度を高めておかないと他の定義とかぶる恐れがある。)
このブログでいうと、ページネーションのPHP&HTMLは以下のように記述しています。
<div class="pagination-container">
<?php
the_posts_pagination(array(
'prev_text' => '省略(imgタグ+spanタグ)',
'next_text' => '省略(spanタグ+imgタグ)'
));
?>
</div><!-- /.pagination-container -->CSSは囲みdivのクラス「pagination-container」からの相対位置で指定。
.pagination-container nav {
position: relative;
}
.pagination-container nav .nav-links {
display: flex;
}
・・・
.screen-reader-text {
/*テキスト非表示用のクラス*/
position: absolute;
clip: rect(1px, 1px, 1px, 1px);
-webkit-clip-path: inset(0px 0px 99.9% 99.9%);
clip-path: inset(0px 0px 99.9% 99.9%);
overflow: hidden;
height: 1px;
width: 1px;
padding: 0;
border: 0;
}
