the_excerpt()による「続きを読む」のなにが問題なのか?

 ブログのインデックスページには「続きを読む」が表示されると思います。

20150709_1_1

こういうやつです。1、2ヶ月あまりブログを運用してきて、この「続きを読む」について少しばかり書いてみようと思います。

以前の設定

 上のようなインデックスページの設定は次のようにしておりました。

index.php

function.php

プラグインの「WP Multibyte Patch」を有効化するのを忘れないように。このあたりの記述などは、「wordpress 続きを読む」などで検索すると分かりやすい記事がたくさん出てきます。

 こうすると、特になにも設定しなくても168文字ごとに自動で「続きを読む」を挿入してくれる訳です。設定し忘れがないので便利であることは確かです。

the_excerpt() による「続きを読む」のなにが問題か?

 たとえば、このようなエントリーを公開したとしましょう。

20150709_1_2

WordPress の管理画面のテキストエディタで見ると、

これだと37文字とカウントされます。この状態でインデックスページを表示すると、

20150709_1_3

このようになってしまいます。インデックスページに見出しや画像がデカデカと表示されるよりはマシなのですが、毎回エントリーの頭で決まった文字数分の文章を考えねばならず、かなり面倒です。過去のエントリーをご覧ください、冒頭の不自然な長さの書き出しを。

シンプルに WordPress 標準の more を使う

 冒頭の文章の長さに自信のある人ならいいのですが、文章力の貧弱な当ブログでは WordPress 標準の「more」で解決することにしました。

 まずは index.php の各エントリーの抜粋を出力する部分を次のようにします。

the_excerpt 関数から the_content 関数に置き換えました。「…[続きを読む]」は好きな文字を出力することができます。function.php でカスタマイズした部分は削除。なるべく余計なものは書いておかない方がよろしい。

 投稿画面では次のようにします。テキストエディタで、

20150709_1_4

というボタンがあるので、これを押すと、

20150709_1_5

のように

が挿入されます。これでインデックスページを表示すると、

20150709_1_6

「続きを読む」が表示されます。

仕上げ

 実際操作してもらうと分かると思うのですが、「more」ボタンを押すと、

20150709_1_7

20150709_1_8

インデックスページでは期待通りの動作をしてくれるのですが、このままエントリーに移動すると、

20150709_1_9

不必要な改行が挿入されてしまいます。ブログによっては、この動作はあまり好ましくない。

 解決策は超簡単です。「more」ボタンを押したときテキストエディタに挿入された改行を削除するだけです。

20150709_1_10

20150709_1_11

「Delete」キー2回でオッケー。

まとめ

 「続きを読む」系のカスタマイズ記事などでは、毎回 more を記述するのは面倒、という意見が多いようですが、the_excerpt() の文字数を守ることの方が大変だと思い、今回のような運用にすることにしました。the_excerpt() の文字数を減らそうかな、とも考えたのですが、ブログのトップページにもあたるインデックスページに対して毎回少し手間をかけてもいいかな、と思い more を使うことにしてみました。ご自身のブログスタイルにあった運用をしていただければと思います。

おまけ

 インデックスページの抜粋を the_excerpt() で「more」を使うと、

20150709_1_12

「more」を挿入した部分でぶった切ってくれるのですが、「続きを読む」を表示してくれませんでした。「more」を使いたければ the_content 関数で。いいとこ取りはだめなようです。残念。

「役に立った」と思ったら、記事のシェアをお願いします。

スポンサーリンク

Comment

コメント認証制です。反映されるまで時間が掛かる場合があります。
URLの記入はhttpのhを抜いて下さい(宣伝対策です)。
連続でコメントするとスパム扱いになる場合があります。
しばらく待ってからコメントしてください。

CAPTCHA


Si prega di attivare i Javascript! / Please turn on Javascript!

Javaskripta ko calu karem! / Bitte schalten Sie Javascript!

S'il vous plaît activer Javascript! / Por favor, active Javascript!

Qing dakai JavaScript! / Qing dakai JavaScript!

Пожалуйста включите JavaScript! / Silakan aktifkan Javascript!

TOP