マジカルスリー・だいすけのなりゆき長者ブログ

沖縄/大阪WEB広告・ホームページ制作・印刷物制作 マジカルスリー 「福」代表のブログ

*

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の事

Message

  関連記事

WordPressでよく使うコードまとめ

完全に自分用です。 View the code on Gist.  

Limit Login Attempts Reloadedとしてヤツが帰ってきた件

かんたん優秀なセキュリティ、「Limit Login Attempts」 Lim …

タクソノミー(ターム)の記事一覧を出したい!

あれ?archive.phpで表示してる・・・? WordPressでカスタムタ …

別ページのカスタムフィールドの値を取りたいときー

トップページにカスタムフィールドの値を出したい時ってありますよね? そんな時は固 …

WordPressでプラグイン無しサイトマップ

【WordPress】プラグイン無しでサイトマップを追加する方法。 コードのみで …

WordPressで記事ごとに簡単リダイレクト「Page Links To」

WordPressの記事を別ページに置き換えたくなるときってありませんか? たと …

WordPressで記事を取得、ループしたいときに-その2

WordPressで記事を取得したいんだけど・・・ WordPressで記事を取 …

PHPでページの一部の文言だけを更新する方法

サイトのページの一部だけをブラウザから更新したい、だけどCMSとか入れるほどでも …

Advanced Custom Fieldsで作ったカスタムフィールドの画像をアイキャッチ画像にする

カスタムフィールドで投稿した画像を自動でアイキャッチ画像にしたかったのですが、A …

Sugar Events Calendar Lite 中国語化

以前のブログの再掲載です(なくなると困る記事なので・・・) Sugar Even …