說明
wp_tag_cloud() 函數(shù)的作用是用來標(biāo)簽云的,可以根據(jù)每個(gè)標(biāo)簽所關(guān)聯(lián)的文章次數(shù)來定義字體大小、標(biāo)簽排序等屬性。從 2.8 版本開始,添加了 分類法(taxonomy)參數(shù),這就意味著,除了 標(biāo)簽(tags)以外,還可以將 分類(Categories) 或其他 自定義分類法(Custom Taxonomies)作為“云”顯示。
用法
<?php wp_tag_cloud( $args ); ?>
默認(rèn)用法
<?php $args = array(
'smallest' => 8,
'largest' => 22,
'unit' => 'pt',
'number' => 45,
'format' => 'flat',
'separator' => "\n",
'orderby' => 'name',
'order' => 'ASC',
'exclude' => null,
'include' => null,
'topic_count_text_callback' => default_topic_count_text,
'link' => 'view',
'taxonomy' => 'post_tag',
'echo' => true,
'child_of' => null(see Note!)
); ?>
注: child_of 不是一個(gè)直接的 wp_tag_cloud 數(shù)組的鍵(Key),但由于這個(gè)函數(shù)使用 wp_parse_args() 和 get_terms() ,你可以通過 get_terms() 使用所有的數(shù)組鍵。
默認(rèn)情況下的輸出內(nèi)容:
- smallest —— 最小的標(biāo)簽(使用次數(shù)最少)顯示大小為8
- largest ——最大的標(biāo)簽(使用次數(shù)最多)顯示大小為22
- unit —— 最大值最小值的單位為’pt’
- number —— 至多顯示45個(gè)標(biāo)簽
- format —— 以平面形式顯示所有標(biāo)簽(標(biāo)簽之間用空格隔開)
- separator —— 顯示標(biāo)簽之間的空格
- orderby —— 按名稱為標(biāo)簽排序
- order —— 以升序排列
- exclude —— 不排除任何標(biāo)簽
- include —— 包括所有標(biāo)簽
- topic_count_text_callback —— 使用函數(shù) default_topic_count_text
- link —— 可視
- taxonomy —— 用文章的標(biāo)簽作為云基礎(chǔ)
- echo —— 輸出結(jié)果
參數(shù)
smallest
(整數(shù))(可選)使用次數(shù)最少的標(biāo)簽的字號(hào)大小(單位由unit參數(shù)決定)
默認(rèn)值:8
largest
(整數(shù))(可選)使用次數(shù)最多的標(biāo)簽的字號(hào)大小(單位由unit參數(shù)決定)
默認(rèn)值:22
unit
(字符串)(可選)對(duì)smallest與largest的值的測(cè)量單位。可以是任何CSS長(zhǎng)度單位,如pt, px, em, %。
默認(rèn)值:’pt’
number
(整數(shù))(可選)顯示在云中的實(shí)際標(biāo)簽數(shù)。(值為’0’時(shí)顯示所有標(biāo)簽)
默認(rèn)值:45
format
(字符串)(可選)所顯示的云的格式。
- ‘flat’ (默認(rèn)值)標(biāo)簽被“separator”參數(shù)所定義的空格分隔
- ‘list’ 標(biāo)簽與class=’wp-tag-cloud’ 共同在UL中
- ‘array’ 標(biāo)簽在數(shù)組中,函數(shù)以數(shù)組方式返回標(biāo)簽云,以用在PHP中。注意:數(shù)組被返回,而非顯示。
separator
(字符串)(可選)標(biāo)簽之間的文本/空格。
默認(rèn)值:’\n’ (空格)
orderby
(字符串)(可選)標(biāo)簽的排列依據(jù)。有效值包括:
- ‘name’ (默認(rèn)值)
- ‘count’
order
(字符串)(可選)排列順序(升序或降序)。有效值包括(必須大寫):
- ‘ASC’ ——升序(默認(rèn)值)
- ‘DESC’ ——降序
- ‘RAND’ —— 隨機(jī)
exclude
(字符串)(可選)將要被排除的標(biāo)簽(term_id)的ID,各ID用逗號(hào)隔開。如 ‘exclude=5,27’表示不顯示term_id為5或27的標(biāo)簽。默認(rèn)值為不排除任何標(biāo)簽。
include
(字符串)(可選)要包含的標(biāo)簽(term_id)列表,各ID用逗號(hào)隔開。例如, ‘include=5,27’ 表示只顯示term_id為5或27的標(biāo)簽。默認(rèn)為包含所有鏈接。
topic_count_text_callback
(字符串)(可選)給出標(biāo)簽所關(guān)聯(lián)的文章數(shù),返回標(biāo)簽鏈接的用于 tooltip 的文本。
默認(rèn)值: default_topic_count_text
link
(字符串)(可選)設(shè)置鏈接,允許編輯某個(gè)指定標(biāo)簽。有效值包括:
- ‘view’ (默認(rèn)值)
- ‘edit’
taxonomy
(字符串)(可選)用以生成云的分類法。
- ‘post_tag’ —— (默認(rèn)值)將文章標(biāo)簽當(dāng)作云的來源
- ‘category’ —— 用文章分類生成云
- ‘link_category’ —— 用鏈接分類目錄生成云
- 任何其他已注冊(cè)的分類法
- 或者一組 分類法 (注:此參數(shù)引入于 3.1 版本)
echo
(布爾型)(可選)顯示結(jié)果,或?qū)⒔Y(jié)果保留在變量中。默認(rèn)值為true(顯示標(biāo)簽云)。有效值包括:
- 1 (true) —— 默認(rèn)值
- 0 (false)
例子
顯示標(biāo)題為Popular Tags的云
<?php if ( function_exists('wp_tag_cloud') ) : ?>
<h2>Popular Tags</h2>
<ul>
<li><?php wp_tag_cloud('smallest=8&largest=22'); ?></li>
</ul>
<?php endif; ?>
限制標(biāo)簽大小且以使用次數(shù)而非名稱排列標(biāo)簽的云
<?php wp_tag_cloud('smallest=15&largest=40&number=50&orderby=count'); ?>
以數(shù)組形式返回云,但不顯示
在變量$tag中包含標(biāo)簽云,以用在其它PHP代碼中
<?php $tag = wp_tag_cloud('format=array' );?>
顯示分類云
使用分類法(taxonomy)參數(shù)定義顯示分類云
<?php
wp_tag_cloud( array( 'taxonomy' => 'category' ) );
?>
顯示 分類 和 標(biāo)簽 云
使用分類法數(shù)組將分類和標(biāo)簽顯示為云
<?php
$args = array(
'taxonomy' => array('post_tag','category'),
);
wp_tag_cloud($args);
?>
更改云鏈接的標(biāo)題文本
使用 topic_count_text_callback 參數(shù)傳遞一個(gè)新的返回函數(shù)。原始函數(shù) default_topic_count_text() 位于 /wp-includes/category-template.php 。這個(gè)例子使用“pictures”替換默認(rèn)的“topics”:
<?php
wp_tag_cloud( array( 'topic_count_text_callback' => 'my_tag_text_callback' ) );
function my_tag_text_callback( $count ) {
return sprintf( _n('%s picture', '%s pictures', $count), number_format_i18n( $count ) );
}
?>
創(chuàng)建標(biāo)簽存檔頁(yè)面
從 2.3 版本開始,標(biāo)簽云可以制作成一個(gè)標(biāo)簽存檔頁(yè)面。這就意味著,用戶可以點(diǎn)擊某個(gè)標(biāo)簽,然后查看到該使用該標(biāo)簽的所有文章。根據(jù) 模板層級(jí)(Template_Hierarchy),如果tag.php模板不存在,那么就使用archives.php模板。通過tag,php模板你可以自定義標(biāo)簽存檔索引的樣式,為方便導(dǎo)航,模板會(huì)在最上方包含標(biāo)簽云。
要將標(biāo)簽云顯示在模板上方,你需要將一個(gè)新模板添加到主題文件中。模板、模板層級(jí) 中有相關(guān)介紹。基礎(chǔ)步驟包括:
1. 用下面的內(nèi)容創(chuàng)建一個(gè)文件,命名為tag.php
2. 將新文件上傳到主題目錄下
3. 如果你希望在頁(yè)面導(dǎo)航中加入一個(gè)指向標(biāo)簽索引的鏈接,可進(jìn)行第三步驟,否則點(diǎn)擊某個(gè)標(biāo)簽時(shí)會(huì)使用新模板。
- 用新模板新建一個(gè)空白頁(yè)面,將頁(yè)面命名為標(biāo)簽存檔索引。
對(duì)第三步的進(jìn)一步闡述:
WordPress可為不同頁(yè)面使用不同頁(yè)面模板。在 頁(yè)面>添加新頁(yè)面 界面的最下方(或是側(cè)邊欄,取決于你安裝的WordPress版本)有一個(gè)名為“頁(yè)面模板”的下拉式菜單。你可以在這里選擇顯示某個(gè)頁(yè)面所用的模板。
<?php /*
Template Name: Tag Archive
*/ ?>
<div>
<?php get_header(); ?>
<h2>Tag Archive</h2>
<?php wp_tag_cloud(''); ?>
<div class="navigation">
<div class="alignleft"><?php next_posts_link('? Older Entries') ?></div>
<div class="alignright"><?php previous_posts_link('Newer Entries ?') ?></div>
</div>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<div class="entry">
<?php the_content('Read the rest of this entry ?'); ?>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
<?php get_footer(); ?>
注意:模板還沒有添加樣式。通過查看single.php主題文件可以了解你的主題所用的結(jié)構(gòu)。
函數(shù)歷史
- 3.1 添加傳遞分類法數(shù)組的功能參數(shù)
- 2.9 添加 separator 參數(shù)
- 2.8 添加 taxonomy 和 echo 參數(shù)
- 2.7 添加 link 參數(shù)
- 2.5 在order參數(shù)下新增’RAND’順序 ;format=array 返回?cái)?shù)組
- 該標(biāo)簽始見于WordPress 2.3
源文件
wp_tag_cloud() 位于 wp-includes/category-template.php





如何給標(biāo)簽添加子分類呢?添加上就可用child_of這個(gè)來調(diào)用了吧
沒折騰過,自己查看下
https://css-tricks.com/how-and-why-to-convert-wordpress-tags-from-flat-to-hierarchical/
倡萌 我的標(biāo)簽云有個(gè)問題
就是 進(jìn)入標(biāo)簽云存檔頁(yè)tag的時(shí)候除了首頁(yè)的鏈接沒變 其他導(dǎo)航的鏈接都變了
比如在存檔頁(yè)http://localhost:8899/tag/js/
想跳轉(zhuǎn)回 關(guān)于我們的頁(yè)面
但是鏈接是這樣的http://localhost:8899/tag/js/about
正確的about 的鏈接應(yīng)該是http://localhost:8899/about/
———————————————————————–
這個(gè)是什么原因呢???
添加鏈接的時(shí)候,不要使用相對(duì)地址,請(qǐng)使用完整的絕對(duì)地址
好的 已解決 非常感謝!
這是個(gè)相當(dāng)技術(shù)的活,咱是連看都還不大看得明白!
這個(gè)標(biāo)簽云是否可以顯示最新添加的標(biāo)簽?zāi)亍?/p>
wp_tag_cloud 只支持按名稱或使用次數(shù)排序,不支持按照時(shí)間排序,也就無法用它調(diào)用最新的標(biāo)簽了
不過有人選擇僅使用了一次的標(biāo)簽,按照使用時(shí)間倒序排序,作為最新的標(biāo)簽,具體你可以看下
http://stackoverflow.com/questions/22935628/how-to-get-latest-recent-tag-in-wordpress
要顯示自己設(shè)定的標(biāo)簽要怎么寫?
怎么你的回答那么像我大學(xué)一個(gè)同學(xué)的口吻
倡萌,有沒有發(fā)現(xiàn)一個(gè)很奇怪的現(xiàn)象,只是要代碼很長(zhǎng)的,操作比較復(fù)雜的,一般回的人都比較的少,能完全看完就不錯(cuò)了。是不是因?yàn)檫@個(gè)是快餐年代?哈哈
如果他真的想學(xué)習(xí)知識(shí),或者真的用心研究,是不會(huì)嫌代碼長(zhǎng)的。
免費(fèi)主機(jī)同理
這種代碼是給需要寫模板的人查閱的,一般人回復(fù)干嘛?
很詳細(xì)的介紹,以前為了找tags函數(shù)的用法費(fèi)老事啦