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です(詳細説明しろよ…)。
便利なので良かったら使ってみてくださいね~。
関連記事
-
Instant WordPress入れてみる
Instant WordPressという、ネット上のサーバーではなくローカルPC …
-
カスタムフィールドの出力(テンプレート作成)について
表題の通り覚え書き。 テンプレートを作る。page.phpなどを元にしてテンプレ …
-
タクソノミー(ターム)の記事一覧を出したい!
あれ?archive.phpで表示してる・・・? WordPressでカスタムタ …
-
WordPressのページを印刷しようとするとスタイルが崩れる
WordPressのページを印刷しようとするとガタ崩れする時があると思います。 …
-
WordPressで会員サイト的なものを作りたい
WordPressで会員サイト的なものを作る と言う題目で幾つか記事があったんで …
-
嫁の人用:WordPressで記事を取得、ループしたいときに-その1
WordPressの制御部分の基本です。 主にメインループの事を描かせていただき …
-
子カテゴリに親カテゴリのテンプレートを引き継がせる
WordPressって基本的に親カテゴリを指定すると、それにぶら下がっている子カ …
-
WordPressサーバー移転の順序
自分用に備忘録。 FTPで元サイトをローカルにダウンロード PhpMysqlで元 …
-
ページネーションがおかしいぞ?
とあるサイトで、ページ送りがおかしくなっていました。 具体的に言うと、本来6ペー …
-
WordPressで勝手に画像リサイズされる
いつもの防備録です。 本当に間抜けな話なんですが、これってほぼ間違 …