WordPressで記事タイトルの文字数制限をするやり方をメモしときます。例えば、記事の下に関連する記事リストを表示する時やサイドバーに最近の投稿リストを表示させる時なんかに役立ちそうです。レイアウト的にバラバラな記事タイトルの文字数を統一したい時って結構ありそうなので。
[ads_center]
やり方
以下のユーザー定義関数をfunctions.phpなどに記述します。
function trim_str_by_chars( $str, $len, $echo = true, $suffix = '...', $encoding = 'UTF-8' ) { if ( ! function_exists( 'mb_substr' ) || ! function_exists( 'mb_strlen' ) ) { return $str; } $len = (int)$len; if ( mb_strlen( $str = wp_specialchars_decode( strip_tags( $str ), ENT_QUOTES, $encoding ), $encoding ) > $len ) { $str = wp_specialchars( mb_substr( $str, 0, $len, $encoding ) . $suffix ); } if ( $echo ) { echo $str; } else { return $str; } }
あとは、記事タイトルを省略したいところで以下を記述すればOKです。
<?php trim_str_by_chars( get_the_title(), 10 ); ?>
上記は文字数が10文字以上の場合は「…」と省略されます。10という数字が表示される文字数となっているので、ここを変更することで自分の好きな文字数にすることができます。
WordPressのフォーラムに載っていました。とても参考になります。
WordPress › フォーラム » 記事のタイトルを短縮表示してくれるプラグイン
他のやり方としては、mb_substrにthe_titleを入れて指定した文字数を返すというのもあります。
<?php if (strlen($post->post_title) > 30) { echo mb_substr(the_title($before = '', $after = '', FALSE), 0, 30) . '...'; } else { the_title(); } ?>
上記は30文字で制限されていて、それ以降は…で省略されます。シンプルで良いですね。
[WordPress] テーマファイル側で、記事タイトルの文字数を制限する – かちびと.net
ということで、WordPressで記事タイトルの文字数制限をするやり方でした。