タイトルの文字数制限 – 全角/半角のカウントが異なる例

PHPワードプレステンプレートタグ要約

タイトルの長さを○○文字までに

タイトルの文字数を制限する際、こんな感じで書いていました。

$length = 20;
$title = mb_strimwidth( strip_tags( the_title_attribute( 'echo=0' ) ), 0, $length, '', 'UTF-8' );

strip_tags()は要らないかな。無くても出力は同じ模様。

3点リーダーを付ける。つかない!

文字数を超えている場合に、3点リーダーが付くようにしようと「wp_html_excerpt()」を使ってみたところ、

$length = 20;
$more = ' …';
$title = wp_html_excerpt( the_title_attribute( 'echo=0' ), $length, $more );

20文字に制限されない、3点リーダーも付かない!

全角/半角

前者は、半角 ⇒ 20文字、全角 ⇒ 10文字

後者は、半角 ⇒ 20文字、全角20文字

記述ミスで制限されないのではなく、数え方が違っていて制限オーバーになっていないのでした。

小一時間悩んだ。

 

見た目は前者の方が整って見えるので、文字数を数えて、超えていたら「more」を付ける、などの判定が必要。そのうち書いてみよう。