WordPressの抜粋文(excerpt)が全文表示されてしまう場合の対処方法

0

原因は日本語だから

細かい説明は割愛しますが、結論日本語だからである場合がほとんどだと思います。日本語は英語のように単語毎に(半角)スペースがないため、文字数を正確に計算できないことが原因とか。

これを解決する方法はいくつかあるのですが、テンプレートファイルを直接触るのは面倒なので、プラグインを入れると簡単解決します。

Limit Posts Optionsをインストールする

通常通りに新規プラグイン追加ページより「Limit Posts Options」と入力して検索するとすぐ見つかるはずなのでインストールし、有効化します。

設定方法はビジュアルで見た方が分かりやすいと思いますので下記イメージをご参照下さい。

Limit posts options

よく分からないのであれば、上記のまんまで多分大丈夫だと思います。唯一手を加えるとするならば、何文字までを抜粋するかという設定くらいだと思いますので、上記イメージでいうところの「200」、これが何文字まで抜粋するかという文字数ですので、これを適宜調整していただければお好みの感じにできると思います。

抜粋文の末尾が文字化けしてしまう場合

場合によっては、というか、このままではほぼ100%抜粋文の末尾が文字化けしてしまってるのではないかと思います。

↓こんな感じです

WordPressの抜粋文 excerpt の文字化け

この場合、「Limit Posts Options」に少し手を加えることで解決できます。

Limit Posts Optionsの修正方法

  1. フォルダ「wp-limit-posts-automatically」の中にあるファイル「wp-limit-posts-automatically.php」を開きます。
  2. 47,53,58,96,97,101,102,107行目(あたり)の「substr」を「mb_substr」に書き換えます

[crayon]
//例
$end_string = substr($cuttext[0], -5);

$end_string = mb_substr($cuttext[0], -5);
[/crayon]

この作業は1つ1つ手作業でやると逆に事故の元になるかもしれないので、一括置換の方が楽で確実かもしれません。ファイル内の無関係なところに「substr」もない様子なので、私の場合は一括置換で問題なく解決できました。ただ、念のためにバックアップファイルはとっておいた方が無難だと思います。

1つ補足をすると、この影響で抜粋文が長くなってしまうようなので、先ほどの「200」のところをお好みで調整して下さい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA