Weighted Categories で最後のタグの URL がおかしいのを修正する
前回書いた「タグクラウドのリンクがおかしい?」という問題は、やはり 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);