顧名思義,該函數主要用來顯示博客信息;而且根據參數的不同,可以用來顯示博客信息中的不同部分。常用的有以下幾種:
bloginfo(』name』) 顯示博客題名,如 「本站」;默認 (不寫參數) 輸出該項;
bloginfo(』description』) 顯示博客描述部分,如 「路漫漫其修遠兮,吾將上下而求索」;
bloginfo(』url』) 輸出博客 URL 地址,如 http://www.cmsjzy.cn;
bloginfo(』rss2_url』) 顯示博客的 RSS2.0 feed 地址,如 http://www.cmsjzy.cn/feed;
bloginfo(』template_url』) 用來獲取 WordPress 博客的模板地址;
bloginfo(』charset』) 顯示博客的編碼方式,如 「UTF-8」;
一種常見的使用 bloginfo() 函數的組合如下:
」 title=」」 >
這種形式通常會用來添加博客的底部信息,如 Copyright @ 本站,經常在主題模板中使用。
需要注意的是 bloginfo() 函數只能輸出顯示這些參量,如果你想在 PHP 語句中使用得到的這些值,則需使用 get_bloginfo() 函數,該函數和 bloginfo() 使用相同的參數,獲得相同的結果。
2.wp_title()
該函數用來顯示頁面的標題,如在文章頁面,則顯示文章標題;在分類頁面,則顯示分類名稱;等等。
wp_title() 函數可以跟三個參數,即 wp_title(』separator』,echo,seplocation),其中
separator 是 title 和其餘部分之間的分割符號,默認是>>;echo 是個 bool 變量,取 true 顯示標題,取 false 則將標
題作為一個 PHP 參量返回;seplocation 定義分隔符的位置,取 right 定義分隔符在標題後面,取其他任何值,都表示將分隔符放在標題前面。
3.wp_get_archives()
該函數用來獲取博客的文章存檔,通過設置函數的參數,可以按各種方式獲取,如按月,按年等等。
wp_get_archives() 函數後面同樣可以跟多種參數,只不過所有參數都需要使用& 連接,並放在單引號 (』) 中以字符串方式傳遞給函
數,形如 wp_get_archives(』type=monthly&format=html&
show_post_count=1&limit=10′) 。
如上的參數意義描述如下:
type=monthly 表示按月顯示文章存檔,可以使用 yearly 、 daily 、 weekly 等代替 monthly 表示按年、日、以及周顯示文章存檔;
# format=html 表示使用通常的 HTML 中格式化文章列表;
show_post_count=1 表示在文章存檔後面顯示屬於該類別 (年、月等) 的文章數量,該參量是個 bool 值;
limit=10 表示顯示的文章存檔的最大數量為 10,超過次數,則超出部分不顯示;
儘管參數稍多,顯得略為複雜,但其實只需注意 type 、 show_post_count 以及 limit 等三個參量即可。
4.wp_list_categories()
和 wp_get_archives() 函數類似,wp_list_categories() 函數用來獲取博客文章的分類信息,並可以通過設置適當的函數參
數,將其顯示出來。該函數的參數和 wp_get_archives() 函數類似,都需要使用& 連接,放在單引號
(』) 中以字符串方式傳遞。形如 wp_get_archives(』orderby=name&order=ASC&
show_count=1&use_desc_for_title=1&feed=訂閲&exclude=2,5&
number=10′) 。
如上示例中,函數各參數的意義如下:
orderby=name 表示按照分類名稱的字母先後順序顯示分類信息,可以將 name 換為 ID 等;
order=ASC 表示按照分類名稱的字母的升序顯示分類信息,將 ASC 改為 DESC 表示按降序;
show_count=1 在每個分類名稱後面顯示屬於該分類的文章數;
use_desc_for_title=1 使用該分類的描述信息為每個分類名稱超鏈接添加一個 title 屬性;
feed=訂閲:在每個分類信息旁邊添加一個名為 「訂閲」 的超鏈接,提供該分類的 RSS 訂閲;
exlude=2,5:在顯示的分類中去除 ID 為 2 和 5 的分類;也可以用 include=2,5 表示只顯示 ID 為 2 和 5 的分類;
number=10:表示只顯示最先的 10 個分類。
5.get_the_category()
get_the_category() 函數用來返回當前文章所屬的類別的若干屬性所組成的一個數組,該數組包括以下內容:
cat_ID:當前類別的 ID(也可以寫作』term_id』);
cat_name:當前類別的名稱 (也被寫作』name』);
category_description:當前分類的描述 (也可以寫作』description』);
category_count:屬於當前分類的文章數量 (也被寫作』count』) 。
具體的使用方法,我們通過下面的幾個句子來説明:
形如 get_the_category()->cat_ID 的語句,返回當前文章所屬分類的 ID 號;
形如 get_the_category()->description 的語句,返回當前文章所屬分類的描述;等等。
6.the_category()
該函數返回當前文章所屬的類別名稱,而且是文章類別的超鏈接形式。
默認的無參數形式 the_category() 直接以超鏈接形式顯示類別名稱,顯示為:精品推介;
可以在函數中跟上分隔符等參數來格式化輸出,如 the_category(』-』),若當前文章屬於兩個以上分類,可以顯示這樣的形式:精品推介-經驗知識;如只屬於一個分類,則顯示為這樣的形式:精品推介。
7.category_description()
該函數以分類的 ID 為輸入,得到該分類的描述。常和 echo 、 get_the_category() 配合使用,將當前分類描述輸出:
echo category_description(get_the_category()->cat_ID);
如上語句,get_the_category() 得到保存有當前分類信息的一個數組;cat_ID 為該數組中該分類的 ID;將該 ID 輸入給 category_description() 函數,即可得到該分類的描述;然後使用 echo 將其輸出。
但經本站試驗,使用如下的語句可以實現和上面語句相同的功能:
echo category_description();
這可能是因為該函數在默認無參數輸入的情況下會輸出當前分類描述的結果。
8.is_home()
is_home() 用以判斷當前顯示的博客頁面是否是博客首頁,返回的是一個 Bool 值。如果是在首頁,則返回 TRUE;否則返回 FALSE 。
該函數常用來控制博客側邊欄的顯示方式,經常使用如下代碼段:
9.is_archive()
is_archive() 用以判斷當前顯示的內容是否是博客存檔頁面,比如按日期的存檔,或者按分類的存檔,等等;其和 is_home() 函數一樣,返回一個 Bool 值。
10.is_page()
is_page() 函數判斷當前顯示的內容是否是博客的獨立頁面 (page),如 「本站 WordPress」 、 「關於本站」 等頁面;它也返回一個 Bool 值。
我們可以在模板中通過該函數判斷當前是否是一個獨立頁面,從而決定是否為當前顯示的文章顯示發佈時間等等。
11.is_paged()
該函數用以判斷當前文章是否因為內容過多而分頁顯示;需要注意的是,如果你在寫文章時手動添加了標籤,來強制分頁的話,該函數並不會因此而返回 TRUE 。
12.is_page_template()
is_page_template() 函數需要跟一個參數,通常以如下方式使用:
is_page_template(』guestbook.php』);
藉此判斷當前顯示的獨立頁面 (page) 是否使用了參數所示的模板 guestbook.php;如果不跟參數,函數返回當前獨立頁面是否使用了模板。
13.is_single()
is_single() 用以判斷當前顯示的頁面內容是否是一篇單獨的文章。其後面可以跟三種參數,一種是文章 ID;一種是文章題目 (title);一種是
文章名稱 (slug,文章題目的一種簡短説明形式);或者可以將三種參數組合使用,藉此來判斷當前頁面內容是否是具體的某篇文章。
一個簡單的例子如下,我們可以通過如下幾種方式判斷當前顯示的內容是否是本文:
is_single(』808′
);is_single(』 用好 WordPress 不可不知的函數 (二)』);is_single(』functions-must-known-
using-WordPress-second』);is_single(』808′,』 用好 WordPress 不可不知的函數
(二)』,』functions-must-known-using-WordPress-second』);
在這裏,本站需要對上述最後一種方式做些説明:該函數後跟三個參數時,有優先級,如果第一個參數符合條件,則返回 TRUE;否則,則返回 FALSE;貌似後面的參數並沒有什麼意義。
14.is_category()
該函數用以判斷當前顯示的頁面內容是否是一個分類頁面,如網站相關;其中無需參數。函數返回一個 Bool 值。
15.is_tag()
is_tag() 用以判斷當前顯示的頁面是否是一個標籤頁面,比如 WordPress;其後也不需要跟參數。該函數同樣返回一個 Bool 值。
16.is_date()
此函數用以判斷當前顯示的內容是否為按時間歸檔的頁面,比如 2009 年四月,或者 2009 年 4 月 8 日,等等。
17.is_day() 、 is_month() 、 is_year()
這些函數用以判斷當前顯示的內容是否為按天、按月、按年份歸檔的頁面。它們和 is_date() 類似,只不過將歸檔時間更具體化而已。
18.is_author()
該函數用以判斷當前顯示的內容是否為以作者名歸檔的頁面,比如本站的 admin 作者頁面。
19.is_admin()
is_admin() 函數用以判斷當前是否在控制面板頁面,或者管理員面板頁面。
20.get_bloginfo()
該函數和我們前面的文章用好 WordPress 不可不知的函數 (一) 中介紹的 bloginfo() 函數實現近乎相同的功能。主要用來顯示博客的信息;而且根據後跟參數的不同,會輸出博客的不同信息。
其後不跟參數時,get_bloginfo() 可以顯示博客名稱,形如 「本站」;
後跟其他參數時,可以顯示對應的信息,比如 get_bloginfo ( 『description』 ) 用以顯示博客描述信息;
其他還可以使用的參數包括 name 、 url 、 wpurl 以及 admin_email 等等。但因為其與 bloginfo() 函數實現相同的結果,所以,在 bloginfo 能夠實現的情況下,本站不推薦使用 get_bloginfo() 函數。
21.query_posts()
query_posts() 函數結合適當的參數用來控制哪些文章會在頁面上顯示。
形如 query_posts(」cat=3,6&cat=-5,-10″) 表示取分類 ID 為 3 和 6 的文章顯示,不取分類 ID 為 5 和 10 的文章顯示;
形如 query_posts(」order=ASC&showposts=10&offset=1&orderby=date&posts_per_page=5″) 意義如下:
order=ASC 表示按照升序排列,取為 DESC 則表示按降序;
showposts=10 則表示獲取 10 篇文章;
offset=1 表示取最新的文章;
orderby=date 表示將文章按照日期排序;
posts_per_page=5 表示每頁顯示 5 篇文章。
需要注意的是該函數只是將文章內容從 MySQL 數據庫中查詢出來,要將其顯示,還需要與其他語句配合,比如一個經常在側邊欄中使用的形式如下:
如上的這段代碼用以在側邊欄的指定位置上顯示最新的 5 篇文章。
query_posts() 函數後面可以跟眾多種類的參數,功能十分強大,在此,我們不進行過多介紹。如果時間和精力允許,本站會在以後的文章中專門撰文詳細地為朋友們做一介紹。
22.get_posts()
該函數和 query_posts() 函數功能大體相同,都是用來從數據庫中查詢並得到符合某條件的文章。不過 get_posts() 函數的使用有一個固定的形式,如下:
」 id=」post-」>
即首先使用 get_posts() 函數查詢得到文章數據,然後使用形如 foreach($lastposts as $post) : setup_postdata($post); 的循環將查詢得到的文章內容顯示出來。
get_posts() 函數使用和 query_posts() 函數相同的參數,在此我們也不再作詳細介紹。
23.wp_list_cats()
該函數和前文用好 WordPress 不可不知的函數 (一) 中 wp_list_categories() 函數實現相同的功能,不過在最新的 WordPress 版本中,此函數已經被棄用,其功能為 wp_list_categories() 函數完全取代。
24.get_calendar()
get_calendar() 函數用以在 WordPress 上顯示日曆,日曆樣式和使用 widget 顯示的效果相同,如下圖所示:
其後可以跟一個 BOOL 參數,用以控制日曆上方星期的顯示樣式。但經本站測試,在中文狀態下,使用 TRUE 或 FALSE 參數,日曆的顯示效果並沒有什麼區別。
25.wp_list_bookmarks()
該函數用來顯示博客的友情鏈接,並可以使用各種參數來控制顯示的數量、種類以及樣式等等。
形如 wp_list_bookmarks(』title_li=&categorize=0&orderby=rand&include=41,40,37,54′); 的形式,意義解釋如下:
title_li=&categorize=0 是一種通常使用的組合,意為不顯示 WordPress 後台控制面板中設置的友情鏈接標題,但所有友鏈都按照設置的分類顯示出來;單獨的一個 title_li=還可以用來設置被顯示友鏈的類別名稱;
orderby=rand 設置友鏈的顯示方式為隨機順序,當然,還可以設置為其他的方式,比如 id 、 url 、 name 等等;
include=41,40,37,54 表示只顯示 ID 為這四個數字的四個友鏈;與此對應,還支持使用 exclude,表示不顯示 ID 為多少的友鏈。
# 此外,該函數還經常用到的參數有 before 和 after,用來設置每個鏈接前後的文字,默認的是和
標記。
26.get_links() 、 wp_get_links()
這兩個函數實現和 25.wp_list_bookmarks() 相同的功能,不過此二函數已在 WordPress 升級的過程中為 25.wp_list_bookmarks() 所取代。
27.wp_list_pages()
該函數以頁面名稱的超鏈接形式顯示 WordPress 博客內的所有頁面,經常用來建立頂端導航頁面,或用來修飾側邊欄。
形如 wp_list_pages(』title_li=&sort_column=menu_order&include=12,25,38,57&depth=1&』); 的函數調用,各參數意義如下:
title_li=用來設置所有顯示頁面的一個總名稱;後面沒有參數值時,表示不顯示名稱;
sort_column=menu_order 用來設置頁面的顯示順序,表示按照 WP 後台設置的各頁面順序顯示,其他的常用順序設置可能還包括 post_title 、 post_date 、 ID 等等;
include=12,25,38,57 表示只顯示 ID 為這四個數值的四個頁面;同樣,可以使用 exclude 來排除相應 ID 的頁面;
depth=1 表示只顯示父頁面,對所有子頁面不予顯示;其他數值還包括默認的 0,表示顯示所有頁面 (子頁面有縮進);-1 顯示所有頁面 (子頁面無縮進);等等。
此外,該函數可能會用到的屬性還包括 link_before 和 link_after,用於設置顯示的頁面鏈接前後的字符。
28.wp_tag_cloud()
顧名思義,wp_tag_cloud() 函數用來顯示 WordPress 博客的標籤雲。
一種形如 wp_tag_cloud(』smallest=8&largest=22&number=30&orderby=count』); 的函數調用,各參數的意義如下:
smallest=8 用來設置標籤雲中顯示出來的所有標籤中,計數最少 (最少文章使用) 的標籤的字體大小為 8;
largest=22 用來設置標籤雲的所有標籤中,計數最多 (最多文章使用) 的標籤的字體大小為 22;
number=30 設置標籤雲中顯示的最多標籤數量為 30;
orderby=count 設置標籤雲中標籤的排序方式為計數 (默認),而不是名稱 (相應參數為 name,widget 調用時的默認值) 。
其他常用的參數還包括 include 和 exclude,用來設置在標籤雲中是否包含或去除 ID 為某數字的標籤。
29.wp_register()
wp_register() 函數用以向管理員顯示 「站點管理」 超鏈接;或者當 WP 博客開放了註冊時,向未登陸的用户顯示 「註冊」 超鏈接。
該函數不需要什麼參數,唯一可能用到的參數形式如 wp_register(』 前』,』 後』),可以在如上顯示的超鏈接文字的前後分別顯示一個 「前」 字和一個 「後」 字。當然,你可以據此發揮想象力來個性化自己網站的管理或註冊鏈接。
30.wp_loginout()
該函數用來在指定位置顯示一個 「登錄」 鏈接;當然,如果你已經登錄過了,則會相應地顯示一個 「退出」 鏈接。此函數後面不使用任何參數,所以無法進行靈活的自定義。
不過如果你想自定義自己的 WP 博客的登錄或退出鏈接文字的話,還是可以使用下面 31 中 本站 介紹的函數 wp_logout_url() 和 wp_login_url() 。
31.wp_logout_url() 、 wp_login_url()
使用如上 30 中的函數儘管可以方便地為 WP 博客設置登錄、退出鏈接,但自定義不夠靈活。所以,從 WordPress
2.7 版本開始,提供了這裏的兩個函數。它們分別用來獲取 WP 博客退出或登錄超鏈接,然後,我們使用獲得的超鏈接即可編寫如下代碼,來對 WP 博客的登錄和
退出鏈接進行靈活設置:
」> 點擊這裏退出
」> 點擊這裏登錄
當然,要想實現完美的效果,還需要對訪客的登錄狀態進行判斷,使用一個 if 語句,根據登錄狀態顯示相應的菜單項。
32.wp_meta()
該函數通常會緊跟如上 29 、 30 中的函數後面,其具體在直觀顯示上沒有什麼異樣,貌似是 WP 主題為 WP 插件留下的 API Hook,本站建議朋友們在如上函數後面跟上這一函數。
33.get_recent_posts()
該函數只有當你安裝了中文 WordPress 工具箱之後,才能使用。其作用是用來獲取最新日誌,函數原型如下:
# get_recent_posts($no_posts = 5, $before = 『+ 『, $after = 『
』, $show_pass_post = false, $skip_posts = 0)
可以使用 $no_posts 控制顯示文章數量,$before 和 $after 的意義和前面函數中相同;至於後兩個參數,一般不必設置,直接取默認值即可。
不過因為該函數與 WordPress 內置的 get_posts() 和 query_posts() 函數功能重複,所以通常情況下很少使用。
34.get_recent_comments()
其實安裝瞭如上的中文 WordPress 工具箱之後,最常使用的是這個函數,因為 WordPress 程序本身沒有內置獲取最新評論的函數。該函數原型如下:
# get_recent_comments($no_comments = 5, $before = 『 『, $after = 『
』, $show_pass_post = false)
意義顯然,和上面函數類似,本站此處不再贅言。
35.get_recentcomments()
該函數是在安裝了 WP-RecentComments 插件之後才具有的功能,與如上 34 中的函數類似。
該函數原型如下:
get_recentcomments(int num, int size)
36.wp_get_post_tags()
該函數用來在某個文章頁面或者根據某篇文章的 ID 來獲取該文章的 tag,獲取的結果被放置到一個 tag 數組中。一個常見的使用方式如下:
if (is_single()){$keywords = 「」;$tags =
wp_get_post_tags($post->ID);foreach ($tags as $tag ) {$keywords =
$keywords . $tag->name . 「,」;}echo $keywords;}
首先判斷是否是單文章頁面,如果是,則據當前文章的 ID($post->ID) 來獲取當前文章的 tag,然後取得其 name($tag->name),並將其組合輸出。
37.single_cat_title() 、 single_tag_title()
如名所言,這兩個函數用來獲取分類頁面和 tag 頁面的 title,其通常的使用方式如:
然而,除此之外,single_cat_title() 還可以用來在 tag 頁面上獲取當前頁面的 title;但 single_tag_title() 卻不可用於獲取分類頁面的 title 。
38.get_settings() 、 get_option()
此二函數與前文用好 WordPress 不可不知的函數 (三) 中函數 20.get_bloginfo() 類似,使用方法也相同,可以通過後跟各種參數來獲取 WordPress 博客的相關信息。
比如如下的調用方式:
get_settings(』name』) 或 get_option(』name』)
可以用來獲取當前 WordPress 博客的標題。
39.wp_head()
該函數與前文 32.wp_meta() 相同,是 WP 主題為 WP 插件留下的 API Hook 。
40.get_header() 、 get_footer() 、 get_sidebar() 和 comments_template()
這幾個函數是用來在 WordPress 主題中獲取幷包含相應的文件的。比如:
get_header() 用來包含當前主題文件夾下的 header.php;
get_footer() 用來包含主題文件夾下的 footer.php;
get_sidebar() 用來包含主題文件夾下的 sidebar.php;
comments_template() 用來包含 comments.php 。
需要注意的一點是,如果當前主題文件夾下缺少對應的文件,則函數會使用 wp-content/themes/default/文件夾下的對應文件代替。
此外,以上函數後面都不能跟參數,只有 get_sidebar() 例外,因為一個主題中可以使用多個 sidebar 。形如 get_sidebar(』up』) 的調用方法可將 sidebar-up.php 側邊欄模板文件包含到主題中。
除了以上幾個函數之外,在主題中如果想包含一個具體的文件,還可以使用如下方式:
include(TEMPLATEPATH . 『/***.php』)
如上的函數形式可以將當前主題文件夾下名為***.php 的文件包含進來;其中 TEMPLATEPATH 是當前主題文件夾地址的一個引用 (不含末尾的/,所以需要添加上) 。
41.have_posts() 、 the_post()
這兩個函數的使用範圍有限,通常在 WordPress 的循環中使用,用以獲取所有文章。其固定使用形式如下:
此處顯示文章此處顯示未找到文章時的信息,比如 404 相關
另一種常見的形式是將如上代碼中的前兩行組合起來 (其他地方不變):
該形式通常會在模板的 index.php 、 archive.php 或者 single.php 等頁面使用。除此之外的其他地方,我們通常不會看到此二函數的身影。
42.the_title() 、 the_title_attribute()
the_title() 函數主要用來獲取當前文章的 title,其後可以跟上三個參數 (可全部省略,取默認值),調用形式如下:
參數 before 用來設置在獲取的 title 前面顯示的字符內容;after 用來設置 title 其後顯示的內容;而 display 是一個 Bool 值,用於控制獲取的 title 是否顯示出來。
the_title_attribute() 函數與 the_title() 類似,其使用方法如下:
the_title_attribute(』before=前&after=後&echo=true』)
其中 before=和 after=分別用於設置 title 前面和後面顯示的字符;echo=true 或者 false 用户設置獲取的 title 字符串是否顯示出來。
形如或 the_title_attribute(』before=當前文章&after=的評論:&echo=true』) 的調用形式將會顯示如下的結果:
當前文章用好 WordPress 不可不知的函數的評論:
43.single_post_title() 、 single_tag_title() 、 single_cat_title()
44.the_ID()
該函數後面不跟任何參數,使用如下所示的調用方式:
用於獲取並顯示當前文章頁面的 ID 號。不過需要特別注意的一點是,該函數只能在 WordPress 的大循環內使用,在其他地方使用可能也會顯示 ID 號,但顯示的內容始終不會隨文章而改變。
此外,該函數通常還會在如下所示的 CSS 結構中使用:
可為博客中不同的作者設置不同的 title 樣式,以示區分。
45.get_the_ID()
該函數與 44.the_ID() 函數實現完全相同的功能,目前 WordPress 官方也沒有提供該函數的使用説明。你可以參閲如上 44 中對 the_ID() 函數的介紹。特別提醒一點,該函數與 the_ID() 類似,也只能在 WordPress 的大循環中才能正確使用。
46.the_time() 、 get_the_time()
the_time() 用來獲取並顯示當前文章發佈的時間,和上面幾個函數類似,此函數也是隻能在 WordPress 的大循環中使用。
該函數後面可以跟控制日期或時間格式的參數,常用的參數形式如下:
如的調用形式顯示效果為:六月 13, 2009(英文狀態下顯示 June 13, 2009);
如的調用形式顯示效果為:7:09 下午 (英文狀態下顯示 7:09 pm);
如的調用形式顯示效果為:19:09 。
事實上,除了使用 the_time() 函數之外,WordPress 還提供了一個具有類似功能的 get_the_time() 函數。該函數除了不具有
the_time() 函數的顯示功能之外,其餘功能二者完全相同。使用 get_the_time() 函數時,如欲將獲取的時間顯示出來,需要使用專用語
句。
下面,我們籍此機會來簡單瞭解一下 WordPress 中時間的格式。在 WordPress 中,通常用於控制時間格式的有一下字符:l, F, j, S, Y, G, g, i, a 等等,其詳細意義如下:
l(小寫 L) 用來顯示一週之中每一天的名稱,比如星期六,或者在英文中顯示 Saturday;
F 用來顯示月份名稱,比如六月,或者 June;
j 用來顯示一月之中的某一天,比如 13;
Y 用來以 4 位數字形式顯示年份,使用 y 則以末兩位數字顯示年份,比如 2009 或 09;
G, g, i, a 等四個字符通常組合使用,如前例子,有兩種形式:
g:i a 以形如 7:09 下午或 7:09 pm 的形式顯示時間;
G:i 以形如 19:09 的 24 小時進制形式顯示時間。
S 通常緊跟在 j 後面,表示是否在一月之中某天之後添加英文後綴 (st, nd, th 等) 。