こんにちは、河野です。
このTechscoreBlogはWordPressで運用しています。公開にあたって、トップページの記事一覧に表示される抜粋の部分を調整するためにプラグインを作ったので、それを紹介します!
すぐに導入したい方はインストールから読んでください。
標準機能だと気に入らない点
標準の the_excerpt でも特に抜粋を設定しなくても、本文から文章を抜き出して表示することができます。ですが、いくつか気に入らない点がありました。
- 末尾が文字化けすることがある
- 規定の文字数でぶつ切りになってしまう
- 続きを読むためのリンクがない
素直に抜粋を入力した上でテンプレートとかを調整した方が正確なんですが、毎回記事を更新するたびに抜粋を記載するのはちょっと面倒ですし、できればラクして更新したいです。
Excerpt plugin for Nihongo
そこで、今回作ったのが、Excerpt plugin for Nihongoです。
このプラグインの特徴は、以下の3点です。
- 末尾が文字化けしない
- 句点で区切ってくれる
- 本文へのリンクを張ってくれる
まずは、末尾が文字化けしないようにして、句点(。)で区切るようにしました。いろんなプラグインを探してみたのですが、句点で区切るというのは見当たりませんでしたので、一番の特徴かなと思いましたので、for Nihongoとつけました。
そして、本文へのリンクですが、これはthe_excerptを使う場合のあるあるネタで、色んなところで工夫されていますね。WordPressを設置するたびに設定しているので、今回プラグインの機能として盛り込んでみました。
インストール
githubで公開しています。
Excerpt plugin for Nihongo
zipファイルをダウンロードして、プラグインディレクトリに解凍してください。設置に問題がなければプラグイン一覧に表示されますので、有効にしてください。
※他にも抜粋を表示するプラグインはありますが、同時利用を想定していませんので注意してください!
テンプレートでの使い方
もともと用意されている、the_excerpt 関数を使用します。この関数に対してフィルターとして動作するように作っています。
表示内容
抜粋を表示するために、以下の優先順位でテキストを参照します。
- 抜粋(記事の投稿画面で入力するもの)
- 本文の中にあるmoreタグまで
- 規定の文字数の前後にある句点まで
- 規定の文字数まで
WordPressの標準機能の「抜粋」や「moreタグ」を使用することもありますので、そちらを優先しています。この2つは、内容を変更せずそのまま表示します。
どちらもなかった時は設定している文字数の前後から句点を探して、そこまでを表示します(3)。句点そのものがない、設定している文字数の前後に句点がない、という状況の時は設定している文字数までを表示します(4)。
3と4の出力の際、タグを除去します。
設定項目
設定の変更はプラグインの編集で行ってください。
設定可能な項目とデフォルト値は以下の通りです。
- 取得する文字列の基準の長さ: 100文字
- 本文へのリンクのアンカーテキスト: 続きを読む...
- 本文へのリンクの前に付く文字列: <br>
- 本文へのリンクの後に付く文字列: ''(何も設定されていません)
- 区切り文字: 句点
変更箇所はコメントで目立つようにしてします。実際のコードは下記になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 取得する文字列の基準の長さ define('CONTENT_LENGTH', 100); # 本文へのリンクのアンカーテキスト define('READMORE_ANCHOR_TEXT', '続きを読む...'); # 本文へのリンクの前に付く文字列 define('READMORE_PREFIX', '<br>'); # 本文へのリンクの後に付く文字列 define('READMORE_SUFFIX', ''); # 区切り文字(デフォルトは句点) define('DELIMITER', '。'); |
実際にどんな感じになるのか、TechscoreBlogのトップページで確認できます。
単純なプラグインですが、抜粋表示がラクにできるようになりました。句点で区切るので良い感じに表示されていると思いますがどうでしょう?!
Trackbacks
[...] » WordPressの抜粋を良い感じに表示するプラグインを作りました TECHSCORE BLOG [...]