How Do I Get Back My Boyfriend
最近開始迷戀上豆瓣網,在用標簽來搜索豆瓣的電影的時候很方便,并且豆瓣電影有一個單獨的標簽頁,可以列出所有的標簽,我覺得這對于用戶來說是很方便的。于是我就想,這么有利于用戶體驗的功能為什么不給自己的網站也做個呢?
wordpress可以使用wp_tag_cloud()函數輸出標簽云,你可以先看看實際的演示效果:
查看演示
wp_tag_cloud()函數的參數解說
在sidebar.php模板文件中找到了標簽云的輸出代碼:
這是上面代碼輸出的標簽云效果:
同志們可能也注意到了上面代碼中包含的參數,下面我對wp_tag_cloud()函數的參數做個簡單的說明:
unit
(字符)型,設定標簽字體的大小使用的單位,可以是CSS的任何長度單位,例如:px、pt、em、%(默認是pt);
smallest
(數值)型,設定標簽字體的大小的最小值,就是使用次數最少的標簽的字體大小(默認是8);
largest
(數值)型,設定標簽字體的大小的最大值,就是使用次數最多的標簽的字體大小(默認是22);
number
(數值)型,設定標簽顯示多少個數(為0時是顯示所有的標簽);
orderby
(字符)型,設定標簽是按照什么順序來排列:name(默認) 是按照標簽名稱來排序,count 是按照標簽使用的次數來排序;
format
(字符)型,設定標簽是按照什么格式來顯示:flat(默認) 標簽用空格分隔,list 標簽用無序列表(ul+li的結構)的格式輸出,array 標簽保存在數值中;
order
(字符)型,設定標簽的排序次序:ASC(默認) 升序,DESC 降序,需要注意的是,這個參數的值都必須大寫;
exclude
(數值)型,排除某個或多個標簽,例如:exclude=5,27就是排除標簽ID為5和27的這兩個標簽,要排除的ID用逗號分割,默認不排除標簽;
include
(數值)型,只顯示某個或多個標簽,例如:ixclude=5,27就是只顯示標簽ID為5和27的這兩個標簽,要顯示的ID用逗號分割,默認顯示所有標簽;
這些都是wp_tag_cloud()函數的常用參數,還有些參數沒有一一列出來,因為用得比較少,如果你想了解更詳細的函數說明,你可以去看看官方的說明文檔。
添加標簽頁面
看了上面簡單的wp_tag_cloud()函數的參數說明,相信你對它有了一定的了解,接下來將添加一個標簽頁面。
新建一個tags的模板頁面,至于如何新建不是該文所討論的范疇,你也可以復制模板文件夾下的links.php文件,然后將文件名改為tags.php,在tags.php適當的位置添加如下代碼:
term paper help
添加好代碼后,將tags.php文件復制到模板文件夾的根目錄(和links.php同級),然后登錄wordpress的后臺,選擇新建頁面->輸入頁面標題->選擇模板:
這里選擇的就是剛剛新建的tags.php,好了,標簽頁面添加完畢了。但是現在的頁面顯示結果比較簡單,就是一個標簽名稱,如果要顯示該標簽包含有多少篇文章,還得修改下核心文件。
修改核心文件
修改核心文件之前建議先給該文件做個備份,如果以后升級wordpress還得再次修改下這一段代碼。找到wp-includes/category-template.php這個文件,你會發現這段代碼:
foreach ( $tags as $key => $tag ) {
$count = $counts[ $key ];
$real_count = $real_counts[ $key ];
$tag_link = '#' != $tag->link ? esc_url( $tag->link ) : '#';
$tag_id = isset($tags[ $key ]->id) ? $tags[ $key ]->id : $key;
$tag_name = $tags[ $key ]->name;
$a[] = "$tag_name";
}
switch ( $format ) :
case 'array' :
$return =& $a;
break;
case 'list' :
$return = "
\n\t
* ";
$return .= join( "
\n\t
* ", $a );
$return .= "
\n\n";
break;
default :
$return = join( $separator, $a );
break;
endswitch;
要修改的是變量$a[]的這一段代碼,由于側邊欄的標簽云和標簽頁都共用了$a[]這個變量,如果在原來的基礎上修改勢必會影響到標簽云的顯示結果,為了不影響,這里可以再添加一個變量$a2[],然后將修改過的代碼賦值給新變量$a2[],這樣就不會影響原來的結構又達到了修改的目的:
$a2[] = "$tag_name($real_count)";
添加了變量,還得將下面的判斷語句修改下:
case 'list' :
$return = "
\n\t
* ";
$return .= join( "
\n\t
* ", $a2 ); //將原來的$a改成新增的$a2
$return .= "
\n\n";
break;
到這一步,標簽頁就制作完成了。我還增加了一段CSS代碼讓原本一列布局的標簽變成了三列布局,這樣排列會更漂亮:
.wp-tap-cloud{ width:626px;overflow:hidden}
.wp-tag-cloud li{width:156px; float:left}
.wp-tag-cloud li span{color:#777;font-size:14px}