文字を短く区切った部分だけ、文字化けしちゃうのよね〜
マルチバイトのプラグインは有効化してるのに、
文末が◆に?の文字が入る所と入らない所がある。
と思って調べたら下記のサイトを発見!
http://zatzcan.com/wordpress/26.html
「function.php」や「tabs.php」などから以下のような記述を見つけ、
2バイト文字に対応したmb_substrに変更とのこと。
■修正前
$text = substr($text,0,$chars_limit); $text = substr($text,0,strrpos($text,' '));
■修正後
$text = mb_substr($text,0,$chars_limit,'UTF-8'); $text = mb_substr($text,0,strrpos($text,' '),'UTF-8');
とはいえ、だいぶ書いてあるコードが違ったかも、と思ってメモメモ!
「functions.php」内の記述を修正
■修正前
function print_excerpt($length) { global $post; $text = $post->post_excerpt; if ( '' == $text ) { $text = get_the_content(''); $text = apply_filters('the_content', $text); $text = str_replace(']]>', ']]>', $text); } $text = strip_shortcodes($text); $text = strip_tags($text); $text = substr($text,0,$length); $excerpt = reverse_strrchr($text, '.', 1); if( $excerpt ) { echo apply_filters('the_excerpt',$excerpt); } else { echo apply_filters('the_excerpt',$text); } } function reverse_strrchr($haystack, $needle, $trail) { return strrpos($haystack, $needle) ? substr($haystack, 0, strrpos($haystack, $needle) + $trail) : false; }
■修正後
function print_excerpt($length) { global $post; $text = $post->post_excerpt; if ( '' == $text ) { $text = get_the_content(''); $text = apply_filters('the_content', $text); $text = str_replace(']]>', ']]>', $text); } $text = strip_shortcodes($text); $text = strip_tags($text); $text = mb_substr($text,0,$length,'UTF-8'); $excerpt = reverse_strrchr($text, '.', 1); if( $excerpt ) { echo apply_filters('the_excerpt',$excerpt); } else { echo apply_filters('the_excerpt',$text); } } function reverse_strrchr($haystack, $needle, $trail) { return strrpos($haystack, $needle) ? mb_substr($haystack, 0, strrpos($haystack, $needle) + $trail,'UTF-8') : false; }
ふ〜。長かった。
「substr」を「mb_substr」にして、’UTF-8’を追加するのを2箇所づつやっただけですが。
とりあえず、忘れないように・・・