wordpress

[WP]記事一覧で本文の先頭にある全角&半角スペース(字下げ)を取り除いて抜粋文を出力する方法

字下げ

こんにちは、霙(@xxmiz0rexx)です。

字下げ(インデント、indentation)とは、文章を書く際に行頭の位置を周りの文章よりも下げることである。 (中略) 日本語を含めた多くの言語では、新しい段落を始める際に最初の行を字下げする習慣がある。
引用元:字下げ – Wikipedia はてなブックマーク - 字下げ - Wikipedia

この字下げ。
複数の人で運営しているサイトの場合、最初にしっかり打ち合わせておかないと、 字下げする人としない人が出てきて地獄絵図になります。

今回はWordPressの記事一覧で抜粋文を表示する場合に、 字下げしてある記事としてない記事で文章の開始位置がバラバラで死にたくなったのでPHPで何とかしてみました。

抜粋文の出力

テーマ内
<?php the_excerpt(); ?>

通常はこれを使って抜粋文を出力すると思います。 ただこれをこのまま使うと前述のとおり地獄絵図になったので少し手を加えました。

ちなみに<?php the_excerpt(); ?>とは、55個の単語を抜粋文として出力できるWordPressの便利なテンプレートタグです。 ただし、日本語の場合は単語と単語を半角スペースで区切る習慣がないため、WordPressが55単語を判定できないので、 WordPressに同梱されている『WP Multibyte Patch』を有効化することで単語ではなく文字数で(110文字まで)出力してくれます。

抜粋文から全角&半角スペースを取り除く場合

テーマ内
<?php echo preg_replace('/^[  ]+/u', '', get_the_excerpt()); ?>

preg_replaceで正規表現を使って文頭の全角&半角スペースを削除します。 カッコ内の最後に入っているget_the_excerpt()は、さきほどのthe_excerpt()の親戚みたいなもので、 中に入っている文章を出力ではなく取得することできます。

さいごに

記事の詳細はともかく、一覧は文字の開始位置が違うとかなり目立つので、今回はこのような形で対処してみました。

WEB上の文章で字下げは必要なのか否かは賛否両論あるのだと思いますが、私個人的には読みづらさを感じますし不要だと思っています。 皆さんはどう思われますか??よかったら意見をツイートしてみてくださいね:)

以上、霙でした!

参考:テンプレートタグ/the excerpt – WordPress Codex 日本語版 はてなブックマーク - テンプレートタグ/the excerpt - WordPress Codex 日本語版

参考:PHPで文字列の最初と最後の半角、全角スペースを取り除く | Time to live forever はてなブックマーク - PHPで文字列の最初と最後の半角、全角スペースを取り除く | Time to live forever