フォローしてみる

WordPressのタグ、どんなHTMLに化ける?

Wordpress

Wordpress化の作業において、HTMLのコードをWordpressのテンプレートタグに置き換えていく時、
「このタグってどんなHTMLを掃くのだろうか? 置き換えちゃったけど、CSSちゃんと当たってくれるかな?」と思うことはないでしょうか・・・自分はあります。
テンプレートタグが掃き出すHTMLを知っていると手戻りが減り、作業効率が全然違ってきそうです。
自分用のメモになりますが、テンプレートタグとHTMLの対応をまとめてみました。
(確認バージョン:Wordpress 5.7.1)

ご紹介するテンプレートタグ

この記事で紹介するテンプレートタグは、以下の視点で選んでいます。

・使用頻度が高い(と思われる)
・複数のタグで構成される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;
}

この投稿をシェアする

広告

目次

広告

関連記事