以下に挙げるコードはいずれも未検証ですがご容赦ください。
まずは質問において、PHP のコード部分はコードブロックを使って markdown したほうがいいでしょう。
で、ご提示いただいたコードだと、表示すべき個数を超えても無駄にループを回っているので、if ($count > 3) break;
とかして、ループ抜けちゃう方が賢いです。
で、タグアーカイブへのリンクをつけ、ありがちなそのタグに属する投稿数も表示してみると、次のようになります(たぶん)。
php
1$posttags = get_the_tags();
2$count=0;
3if ($posttags) {
4 foreach($posttags as $tag) {
5 $count++;
6 if ($count > 3) break;
7 echo '<a href="'. get_tag_link($tag->term_id) .'">'. $tag->name .' ('. $tag->count .")</a>\n";
8 }
9}
で、これだと、DB からタグの一覧をごそっと持ってきて、メモリ上にも全部取っておきながら、一部だけ表示することになります。
別に悪くないのですが、タグの数が非常に多い場合などはちょっと無駄っぽいので、DB から取得する数自体を制限するほうがいいケースも多いかと思います。また、DB から抽出する条件をつけられるので、投稿数の多い方からいくつ、とか、そういう指定も出来ます。
だいぶ私の趣味も含めたバージョンで書くと、次のようになります。
html
1<?php
2$args = array( // 投稿数の多い方から 10 個
3 'orderby' => 'count',
4 'order' => 'desc',
5 'number' => 10
6);
7?>
8<ul>
9<?php foreach ( get_terms('post_tag', $args) as $tag) : ?>
10 <li><a href="<?php echo get_tag_link($tag->term_id); ?>"><?php echo $tag->name; ?>(<?php echo $tag->count ; ?>)</a></li>
11<?php endforeach; ?>
12</ul>
どうでしょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/03/20 07:34