4月
15
2012

記事抜粋で文末に”Check”と表示されてしまう。

WordPressリニューアルがほぼ終わったので、ツラツラとココを眺めていたら、
記事一覧ページで抜粋されているエントリ本文の末尾に半角で”Check”
と表示されてしまっているものを発見。どうも、moreを入れてるとこが
抜粋の長さの初期設定である110文字より少ないと出てるみたい。
 

 

【2013/02/04 追記】
別件で調べていたところ、WP Social Bookmarking Lightが原因である事が判明。
プラグインの設定で、個別記事を”No”にすると、抜粋が110文字(指定により異なる)より
短い場合、”Check”と表示されるみたいです。個別記事で”Yes”を選べば表示されません。
本BLOGも下記対策をやめ、WP Social Bookmarking Lightの設定を見直しました。

 
 
実験してみたところ、記事の投稿や編集で「抜粋」項目に文章を入れておいた
場合は110文字以下でも”Check”は表示されず、また、エントリから
moreの指定を除去してしまえば、エントリ本文全体からの抜粋になるので、
ほぼ[…]になって問題なくなる。

とりあえず、PHPで扱えるget_the_excerpt()を使って、この文字列
“Check”をstr_replaceで消してしまえ!と考えて、
the_excerpt()の部分を下記コードに書き換え。

<?php echo str_replace(" Check","",get_the_excerpt()); ?>

一応、消える事は消えたのですが、よくみてみるとモノによっては
“che[…]”なんて表示されてる質の悪い記事も_| ̄|○

ググってみたら、抜粋はwp_trim_excerptがどうのこうのって
書いてあった記事をみつけたので、試しに以下のコードを
function.phpに追加してみたが、結果は変わらず。

function new_excerpt_str($excerpt) {
    return str_replace(' Check', '', $excerpt);
}
add_filter('wp_trim_excerpt', 'new_excerpt_str');

色々調べてみたけど解らなかったので、仕方なく2番目の
wp_trim_excerptはやめて、最初のget_the_excerpt()使って
置換する方を採用し、あちこちで解説されているfunction.phpに
以下のコードを追記して抜粋の長さを110から200に変えてみた。

function new_excerpt_mblength($length) {
	return 200;
}
add_filter('excerpt_mblength', 'new_excerpt_mblength');

本BLOGでの問題箇所は対処できたけど、これって問題が起きてる
部分をずらして回避しただけで根本的な解決ではない上に、
本エントリみたいに、本文の先頭200文字以内に半角で
“Check”って書けなくなってしまった…抜粋で消えちゃうし;
有効な対処方法があれば、ご教示くださいませ。
 

【参考サイト】
》[035] wp_trim_excerpt (抜粋機能)
》ワードプレスthe_excerpt(抜粋・概要)タグのカスタマイズいろいろ
》RSSの記事概要(description)で文字参照が途中で切れることによりパースエラー

 
 

 


2024年7月
1234567
891011121314
15161718192021
22232425262728
293031  

Archives

Recommended