WordPressで日本語の文字数制限を適切に設定する方法:mb_strimwidthとmb_strlenの違い

HTML CSS

WordPressでテキストの表示数を制限する時の数値は注意が必要です。
文字数制限をかける場合、mb_strimwidth 関数をよく使います。

例えば 今回作成したものはこんな感じになりなます。

これを作成する時に カテゴリーを10文字まで表示にしたかったので

と記述しました。

結果は3文字で…しか表示されなかった。

コードはこんな感じで書きました

そこで、調べてみた結果を記事にしてみました。

mb_strimwidth 関数の設定方法

実は 今回mb_strimwidth で指定している「10」というのは「バイト数になり、
文字数とは少し異なります。

なので全角文字の場合は1文字あたり2バイト、
半角文字の場合は1文字あたり1バイトとカウントされます。


そのため、10文字を全角で表示する場合には約20バイト、半角が混ざる場合には
少し余裕を持って30バイトで指定することで、10文字程度が表示されるようになります。

修正後のコードはこちらになります。

こんな感じなのでmb_strimwidth関数を使用する時は少し注意しましょう

mb_strimwidth の各引数の意味

第1引数:対象の文字列
第2引数:切り出し開始位置(今回は先頭の 0)
第3引数:切り出し幅(バイト単位)
第4引数:省略記号(例: ‘…’)

文字数を取得するmb_strlenもある

mb_strlen関数は 文字列の文字数を取得したい場合に適してます。
用途としては文字数が何文字あるか知りたい場合に使用がおすすめです。

mb_strlenとmb_strimwidthの比較

mb_strlen
機能: 文字列の文字数を取得します。
用途: 文字数が何文字あるか知りたい場合に使用します。

php

こんな感じで日本語の1文字ごとをカウントし、正確な文字数が得られます。

mb_strimwidth
機能: 文字列を指定した「幅(バイト数)」で切り取ります。日本語文字を考慮して幅を指定できま す。切り取り時に末尾に任意の文字(省略記号など)を付けることも可能。
用途: 日本語サイトでタイトルや説明文などを特定の幅で制限し表示する際に便利です。

php

上記例では、20バイト(日本語全角文字は3バイト)で文字列を切り取り、「…」を追加しています。

最後にどちらを使う方がいいのか

単に文字数を調べたい場合はmb_strlenを使うといいでしょう。
日本語を含む文字列を、画面幅に合わせて省略表示したい場合はmb_strimwidthが便利です。

日本語サイトでは、文字列の表示制限においてmb_strimwidthを使うことが多いです。
なぜなら、文字幅やバイト数で指定できるため、表示領域の制御がしやすくなる
特にデザインが崩れないようにする場合に有効です。

mb_strlenは、あくまで文字数確認に使用するのがベストです。

最後にもう1パターンあります。

この方法は、指定した場所の文字数を取得して文字数をカウントします
その後指定の文字よりも多い場合は、指定した文字だけ設定した形で表示します。
指定した文字数より少ない場合はそのまま表示します

「今回作成したのがこんな感じで、タイトルが30文字以上の場合は30文字まで表示で
最後に…を表示にしてます。

また、WordPressサイトを快適に運用するには、サーバー選びも大切です。
エックスサーバーは初心者でも安心の高機能と安定性を提供しており、速度と信頼性に優れています。新規申し込みキャンペーン中の今がチャンス!ぜひお試しください。


コードはこんな感じで書いてます。

YouTube動画

おすすめレンタルサーバー Xserver

高速・多機能・高安定レンタルサーバー『エックスサーバー』

私も使ってるレンタルサーバーになります
独自ドメインが永久無料 ・マルチドメイン、メールアドレス無制限!



コメント