Weighted Categories で最後のタグの URL がおかしいのを修正する

Weighted Categories で最後のタグの URL がおかしいのを修正する

2007/01/03 12:48pm

前回書いた「タグクラウドのリンクがおかしい?」という問題は、やはり Weighted Categories のバグだった。

問題は WordPress の list_cats で得たカテゴリーのリスト (HTML) を、配列に変換する部分:

function weighted_categories($smallest=10, $largest=48, $unit="pt", $exclude='')
{
      $cats = list_cats(1, 'all', 'name', 'asc', '', 0, 0, 1, 1, 0, 1, 1, 0, 1, '', '', $exclude, 0);

      **$cats = explode("\n", $cats);**
      foreach ($cats as $cat)
      {
              ...
      }

強調部分で $cats には末尾に改行が含まれているため、変換後の配列の最後の要素は空白文字列になる。そのため、最後のタグの URL がおかしくなっていた。

つまり、末尾の空白を取り除いておけば、問題は解決する。

--- weighted_categories.php.origin    2007-01-02 15:27:48.000000000 +0900
+++ weighted_categories.php   2007-01-02 15:38:13.000000000 +0900
@@ -11,7 +11,7 @@
 {
      $cats = list_cats(1, 'all', 'name', 'asc', '', 0, 0, 1, 1, 0, 1, 1, 0, 1, '', '', $exclude, 0);

-     $cats = explode("\n", $cats);
+     $cats = explode("\n", **trim($cats)**);
      foreach ($cats as $cat)
      {
              eregi("a href=\"(.+)\" ", $cat, $regs);