mb_substr()使ってもサムネイルの見出しがズレるじゃん!という話
2020/03/01
またしても忘備録。
WordPressでよくある、こういう感じの記事表示方法。
文字制限をかけてあげないと枠内から文字が飛び出しちゃいます。
そんな時、mb_substr()関数使うことが多いと思います。
でも、mb_substr()関数だと半角も全角も1文字とカウントしちゃうので表示のズレが出てきてしまいます。
そこでmb_strimwidth()を使いましょうという話です。
使い方はほとんど同じ。
<?php
echo
mb_strimwidth($post->post_title
,0,10,
"..."
,
"UTF-8"
); ?>
こんな感じで書きます。
例のとおりだと記事タイトル($post->post_title
)を最初(0を指定)から10文字取り出して10文字超えたら「…」を出してねって感じです。
mb_strimwidthは1バイト文字は1とカウントし、2バイト文字は2とカウントします。
mb_substrだと2バイト文字も1とカウントしますのでズレが出ちゃうんですね。
あれ?じゃあsubstr関数でよくね?って思ったあなたはなかなかデキる人(かも)!
substrだと半角が混じった文字が奇数個、かつ文末が2バイト文字の際、文字化けが生じます(2バイト文字が1バイトでぶった切られる)。
そのへんの処理をイイ感じにしてくれるのがmb_strimwidthです(詳細説明しろよ…)。
便利なので良かったら使ってみてくださいね~。
関連記事
-
-
WordPressで記事を取得、ループしたいときに-その2
WordPressで記事を取得したいんだけど・・・ WordPressで記事を取 …
-
-
WP_Queryの使い方
WP_Queryの使い方はちょくちょく忘れますので忘備録。 WP_Queryの使 …
-
-
カスタムフィールドの出力(テンプレート作成)について
表題の通り覚え書き。 テンプレートを作る。page.phpなどを元にしてテンプレ …
-
-
WordPressの指定日時での部分表示
久しぶりにWordPressで少しハマったので忘備録です。 サイトの一部分だけ指 …
-
-
Limit Login Attempts Reloadedとしてヤツが帰ってきた件
かんたん優秀なセキュリティ、「Limit Login Attempts」 Lim …
-
-
ショートコードの出力結果が固定ページや投稿の上部に表示される
またもやWordPress覚書。もはやメモ帳代わり。 固定ページなどの途中でPH …
-
-
別ページのカスタムフィールドの値を取りたいときー
トップページにカスタムフィールドの値を出したい時ってありますよね? そんな時は固 …
-
-
プラグイン無しで外部サイトのRSSを表示するRSSリーダー的なもの
外部RSS(ブログの新着記事)を読み込む案件があったので「プラグインでええよなー …
-
-
PHPでページの一部の文言だけを更新する方法
サイトのページの一部だけをブラウザから更新したい、だけどCMSとか入れるほどでも …
-
-
WordPressのカテゴリー選択を1つに制限したがチェックできない場合
カテゴリの選択制限をかけている方はおそらく、jqueryを使って行っていると思わ …