記事タイトルの文字の長さを短くした際に文字化けしてしまう時の対処法

閲覧数:236 views

あなたが今、読んでいるカテゴリー:
wordpress

wordpressの話というかは、PHPや文字コードのお話です。

このブログは海外の方が作成されたテーマ「sixteen」というテーマをカスタマイズして作成しています。
https://wordpress.org/themes/sixteen

ホームのタイトルを短くするコードは最初から実装されていたのですが、タイトル文字が化ける場合がありました。このテーマ、どうやら日本語は考慮していないみたいです。

なぜこのような事が発生するのか?


文字コードやマルチバイト文字とはなんたるかを説明しだすと長文になってしまうので簡単に説明します。
このタイトルを短くするコードで使われている関数「strlen」と「substr」は日本語に対応していないです。

対応方法


接頭辞(これをプレフィックスといいます)がmb_の関数を使用してください。今回であれば、

  • strlen → mb_strlen
  • substr → mb_substr

です。文字列のカウントも実際の日本語の文字数でカウントしてください。もし28文字で表示したい場合は以下のようになります。

これで、正しく表示されるようになります。

文字化け解消

改修後

さいごに


日本の方が作成されたテーマはマルチバイト対応は行われている場合がほとんどかと思いますが、海外のテーマだとそうではないテーマもあります。文字が化けてしまって困っている方は文字列判定を行っている関数の使用箇所を一度見直してみてはいかがでしょうか。

参考になりましたら幸いです。

スポンサーリンク