WordPress: トラックバック元のタイトルを短く表示する

WordPress

これは「効く!」Web文章作成&編集術逆引きハンドブック

最近、徐々にトラックバックされることが増えてきたんだけど、その時にトラックバック元の表示が長くなりすぎるコトがあるのが気に入らなかったのよね。

例えば、直近の外部からのトラックバックタイトルは『それでも地球はまわっている ブログ「それでも地球はまわっている」は、こんな内容を扱っています』なんだけど、これをそのままタイトルとして表示すると、長すぎて画面からハミ出てしまうわけです。

そこでちょっと細工して、タイトルが長すぎる場合は 後半を[…]に差し替えて短く表示するようにしてみました。

トラックバック元のタイトルを短く表示する方法

トラックバック元のタイトルを短く表示するには、コメントやトラックバック元のリンクを取得する"get_comment_author_link"関数を改造して、引数に最大文字列長を取るようにします。

ただしWordPress本体のget_comment_author_link関数を改造してしまうと、WordPress本体のバージョンアップ時に上書きされちゃって悲しい思いをするので、テーマフォルダのfunctions.phpに独自関数を追加する手法を取ることにします。

独自関数の追加

現在使用しているテーマがあるフォルダの「functions.php」ファイルを開き、以下の関数を追加します。

< ?php function hideto_get_comment_author_link($abbr=0) {
	global $comment;
	$url    = get_comment_author_url();
	$author = get_comment_author();
	$author_org = $author;

	if ($abbr && mb_strlen($author) > $abbr) {
		$author = mb_substr($author, 0, $abbr);
		$author .= "...";
	}

	if ( empty( $url ) || 'http://' == $url )
		$return = $author;
	else
		$return = "<a href='$url' title='$author_org' rel='external nofollow'>$author</a>";
	return apply_filters('get_comment_author_link', $return);
}
?>

呼び出し元修正

現在使用しているテーマの中から、トラックバック送信元を表示している箇所を探しだし、その部分を上記独自関数に置き換えます。

具体的には"get_comment_author_link"をgrepして、見つかったところを"hideto_get_comment_author_link"に書き換えればいいよ。

その際に、hideto_get_comment_author_linkの引数にタイトル表示文字列上限を指定すると、文字数が上限を超えている場合は以降の文字をカットして[…]に差し替えます。

要は get_comment_author_link() → hideto_get_comment_author_link(30) って感じね。

注意事項

コメントとピングバック・トラックバックを分離していないようなテーマだと、コメントしてくれた人の名前が上限以上の場合もカットされてしまいます。

まーそんなこと言っても、名前の文字数がダラダラ長いのは勘弁って気もするので、あんまり大きな問題にはならない気がするよ。