■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

Re: ブログのタイトル(postTitle)の表示文字数を制限する方法

tecking > Re: ブログのタイトル(postTitle)の表示文字数を制限する方法 @ 2015/8/21 1:36
tomatoさん

ヨコ入り失礼いたします。

[?php echo mb_strimwidth($this->Blog->getPostTitle($post),0,12,'UTF-8',"…"); ?]

原因が2つありそうですね。

1. PHPの mb_strimwidth() の第4引数・第5引数の順序が逆
2. baserCMSの getPostTitle() の第2引数に false を指定していない

2. で第2引数を省略すると getPostTitle() での文字列は記事へのリンクが埋め込まれた状態(=a タグで挟まれた状態)になるので、純粋にタイトル文字列だけを取得したいときは false を指定する必要があります。

それをふまえて、記事へのリンクあり・なし それぞれ下のようなコードでどうでしょう?

《リンクなし》
<?php echo mb_strimwidth($this->Blog->getPostTitle($post, false), 0, 24, '…', 'utf-8') ?>


《リンクあり》
<?php echo $this->Blog->getPostLink($post, mb_strimwidth($this->Blog->getPostTitle($post, false), 0, 24, '…', 'utf-8')) ?>


タイトル文字列を全角12文字に丸めつつ記事へのリンクをつけたいときは、リンクなしと同様の処理をした上で、baserCMSの getPostLink() の第2引数として渡せばうまくいくのではとおもいます(一応検証済みです)。

《関連リファレンス》
関数リファレンス/Blog getPostLink
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
10 人のユーザが現在オンラインです。 (10 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 10