wordpress標簽頁的制作

How Do I Get Back My Boyfriend

最近開始迷戀上豆瓣網,在用標簽來搜索豆瓣的電影的時候很方便,并且豆瓣電影有一個單獨的標簽頁,可以列出所有的標簽,我覺得這對于用戶來說是很方便的。于是我就想,這么有利于用戶體驗的功能為什么不給自己的網站也做個呢?

wordpress可以使用wp_tag_cloud()函數輸出標簽云,你可以先看看實際的演示效果:

查看演示

wp_tag_cloud()函數的參數解說

在sidebar.php模板文件中找到了標簽云的輸出代碼:

這是上面代碼輸出的標簽云效果:

wordpress標簽頁云效果

同志們可能也注意到了上面代碼中包含的參數,下面我對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的后臺,選擇新建頁面->輸入頁面標題->選擇模板:

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}

所屬標簽

無標簽

25选5玩法中奖