情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

クリック率向上のために!WordPressで「タグ一覧」に「記事数」を追加する方法

PHP (25) WordPress (80)

タグの一覧表示に、その「タグの付いた記事の数」を追加してみました

普段使っているタグ一覧を表示する標準の関数「the_tags()」では、「記事数」を追加する方法がなさそうだったので、自分で関数を実装してみました。ソースコードを共有しておきます。プラグインは使いません。

きっかけ

きっかけは、nanapiのSEO記事から次のツイートを見つけたことです。

カテゴリに記事数を追加したらクリック率が上がったそうです。たしかにそんな気がしてきました。

これがきっかけで、自分はタグについて同じことをしてみようと思いました。

出力例

たとえばこんな出力が実現できます。

タグ: , ,

ソースコード

まず「外観>テーマ編集」にある「function.php」に次のコードを追加します。

/* タグ(記事数), タグ(記事数), ...を表示する関数 */
function the_tags_with_count( $before = '', $sep = '', $after = '') {
	$posttags = get_the_tags();

	if(!$posttags) return false; // tagの無い記事の場合終了

	foreach($posttags as $tag) {
		$link = get_tag_link( $tag->term_id);
		if ( is_wp_error( $link ) )
			return $link;
		$tag_links[] = '<a href="' . esc_url( $link ) . '" rel="tag">' . $tag->name . '(' . $tag->count . '件)' .'</a>';
	}
	$tag_links = apply_filters( "term_links-$taxonomy", $tag_links );
	echo $before . join( $sep, $tag_links) . $after; 
}

使い方(テンプレートへの追加方法)

使い方は標準のthe_tagsと同じで、次のように書けばOKです。先ほどの出力例は、「外観>テーマ編集>単一記事の投稿(single.php)」に次のコードを追加した結果です。

<?php the_tags_with_count('キーワード: ', ', '); ?>

※「タグ999件)」数字の前後の「(」「件)」を変更したい場合は、「$tag_links[] = '';」の行を変更してください。

感想

WordPressの「the_tags」のコードを読んで、真似して書いた感じです。やはり本家のソースコードはとても参考になります。

Webで検索してみると、the_tagsを拡張するために、「foreachとnextを使うなどして何度もechoして、最後のループだけ別動作でセパレータ($sep)を出力しないようにする」という方法で実装している人が多かったのですが、WordPress本体では、joinを使って配列を結合してからechoする(最後の行)という方法をとっているのですね。

参考

コメント(0)

新しいコメントを投稿