Wordpress常用函數

前段時間研究WP(WordPress),整理了一些WP的常用函數,對于一個要求不高的主題來說,這些函數足夠了。
以后有時間再整理。
提示:使用Ctrl+F搜索你想找到功能或

本文主要參考了(無特殊說明,參考均來自WordPress 中文文檔)

WordPress 中文文檔
我愛水煮魚-WordPress 主題教程
阿樹主題制作
露兜博客

更新于2015-11-06


函數

have_posts()

遍歷WordPress,看看是否當前的查詢有任何結果,返回false或true
一般與the_post()配合使用以循環出文章列表

return:無
參數:無
使用方法

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <!-- code -->
<?php endwhile; ?>
<?php else : ?>
    <!-- code -->
<?php endif; ?>

the_post()

迭代主循環

returntrue/false
參數:無
使用方法:參考have_posts()

the_permalink()

在循環函數(the_post())中返回當前URL,該標簽必須在循環中,由于是動態生成的URL(每次循環返回不同),所以不能用于指定某一特定的文章,如果想指定到特定文章,使用get_permalink()并指明文章的ID

參數:無
returnstring,即當前循環的URL

the_title()

類似the_permalink(),在循環函數(the_post())中返回當前文章標題,該標簽必須在循環中,如果想獲取到特定文章,使用get_the_title()并指明文章的ID

參數:無
returnstring,即當前循環的標題

the_tags($before,$sep,$after)

循環列出文檔標簽,若沒有,返回空

參數:都是字符串,且都是可選的,依次是標簽之前,之間,之后顯示什么內容
returnstring,

<!-- 代碼 -->
<span><?php the_tags('標簽:', ', ', ''); ?></span>
<!-- 返回內容 -->
<span>
    標簽:
    <a  rel="tag">兜兜</a>
    , 
    <a  rel="tag">哈市f</a>
</span>

edit_post_link($link, $before, $after, $id)

必須在循環中,如果登錄并且有權限修改該文章,那么顯示編輯鏈接

參數:都是字符串,都可選,1.默認為“編輯”,傳入參數即可修改2.之前顯示內容3.之后顯示的內容4.文章的id,在循環中不要使用
returnstring,

<a class="post-edit-link" >編輯</a>

the_time('string')

顯示當前列表的時間
Formatting Date and Time
例子
F j, Y g:i a - November 6, 2010 12:50 am
F j, Y - November 6, 2010
F, Y - November, 2010
g:i a - 12:50 am
g:i:s a - 12:50:48 am
l, F jS, Y - Saturday, November 6th, 2010
M j, Y @ G:i - Nov 6, 2010 @ 0:50
Y/m/d \a\t g:i A - 2010/11/06 at 12:50 AM
Y/m/d \a\t g:ia - 2010/11/06 at 12:50am
Y/m/d g:i:s A - 2010/11/06 12:50:48 AM
Y/m/d - 2010/11/06

the_excerpt()

必須在循環中,摘要文章,如果沒有在編輯文章頁面添加描述,則取前55字符,且前55文字的HTML標簽被去掉。
如果不在index.php(而在attachment.php或image.php中)則顯示副標題。

注:官方文檔說在描述之后顯示[...],但是實際操作中沒有

條件標簽

用來決定頁面滿足什么條件時顯示某些內容。
zh-cn:條件標簽

is_home();//主頁
isfront_page();//首頁
is_category();//分類頁
is_admin();//控制臺頁
is_single();//單頁文章
is_page();//頁面
is_tag();//標簽
is_author();//作者
is_archive();//存檔
is_search();//搜索頁
is_404();//404頁
is_feed();//feed訂閱頁
in_the_loop();//循環列表中

single_cat_title()

如果是分類或標簽頁,顯示或返回頁面標題,只能在循環外使用

參數:返回值之前,是否顯示

<?php single_cat_title( $prefix = '', $display = true ); ?>

returnstring

single_post_title()

類似single_cat_title(),如果單頁(欄目單頁或文章頁),顯示或返回頁面標題,只能在循環外使用

參數:同上
return:同上

wp_title ( string $sep = '?', bool $display = true, string $seplocation = '' )

顯示或檢索所有頁面的網頁標題

  • $sep 多個標題間間隔符,默認是?
  • $display 是否顯示,默認true
  • $seplocation 顯示文本方向,默認為空字符串,可用leftright

get_post_meta( int $post_id, string $key = '', bool $single = false )

如果是在文章頁,返回原數據。如果不在,返回字符串
這個函數獲取指定日志的指定key的自定義字段,WordPress 常用函數 / get_post_meta

參數

  • $post_id文章ID
  • $key選擇需要顯示的選項,默認為空字符串
  • $single 是否返回值

return

<?php echo get_option( $show, $default ); ?>

一種從數據庫中獲得數據的函數。如果想要獲得的數據不存在或者沒有相關的值,將會返回“FALSE”。

參數
獲取選項的名稱,默認為none

‘admin_email’ – 管理員的E-mail地址。
‘blogname’ – 網站title標題。
‘blogdescription’ – 網站描述.
‘blog_charset’ – 網站編碼一般UTF-8。
‘date_format’ – 日期格式。
‘default_category’ – 文章默認分類。
‘home’ – 網站地址。
‘siteurl’ – wordpress的web地址。注: 與函數 get_bloginfo(‘siteurl’)不同,get_bloginfo(‘siteurl’)返回當前站地址, 但是這個選項等同于get_bloginfo(‘wpurl’);
‘template’ -當前主題名稱
‘start_of_week’ -一星期開始設置
‘upload_path’ – 上傳默認目錄.
‘posts_per_page’ – 文章分頁每頁顯示的數量.
‘posts_per_rss’ – RSS聚合顯示的最新文章數量
默認: None

wp_nav_menu( $args );

顯示在后臺設置的一個導航欄

用法*

<?php
$defaults = array(
    'theme_location'  => '',//用于在調用導航菜單時指定注冊過的某一個導航菜單名,如果沒有指定,則顯示第一個。
    'menu'            => '',//ID,slug,菜單名
    'container'       => 'div',//包裹菜單(菜單父元素)的標簽是什么,默認是div,接受false
    'container_class' => '',//菜單父元素的class,默認menu-{menu slug}-container,例menu-主菜單-container,但是中文會被轉義
    'container_id'    => '',//菜單父元素的id,默認none
    'menu_class'      => 'menu',//菜單的class,默認menu
    'menu_id'         => '',//菜單的id,默認menu-{menu slug}
    'echo'            => true,//是否顯示,默認true
    'fallback_cb'     => 'wp_page_menu',//沒有菜單時的回退,不知如何使用
    'before'          => '',//文本之前顯示,在a之內
    'after'           => '',//文本之后顯示
    'link_before'     => '',//之前,a之外
    'link_after'      => '',//之后
    'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',//使用字符串替換修改ul的class。,不知如何使用
    'depth'           => 0,//顯示菜單的層級,默認為0,-1顯示所有
    'walker'          => ''//自定義的遍歷對象,調用一個對象定義顯示導航菜單。不知如何使用
);

wp_nav_menu( $defaults );

?>

參數
1.查找參數中的菜單ID或菜單名稱,若沒有
2.顯示第一個非空的菜單 ,若沒有
3.以wp_page_menu()顯示,若沒有
4.顯示空

return:參考用法

wp_tag_cloud( $args )

顯示云標簽列表,其中的個數是由文章使用的次數
模板標簽-wp_tag_cloud()

用法

<?php $args = array(
    'smallest'                  => 8, //最小的標簽(使用次數最少)顯示大小為8
    'largest'                   => 22,//最大的標簽(使用次數最多)顯示大小為22        
    'unit'                      => 'pt', //設置最大最小字體單位PT為單位,可以是任何css單位
    'number'                    => 45,  //最多顯示45個,值為'0'時顯示所有標簽
    'format'                    => 'flat',//以平面形式顯示所有標簽(標簽之間用空格隔開)
    'separator'                 => "\n",//顯示標簽之間的空格
    'orderby'                   => 'name', //按名稱為標簽排序,使用次數'count'
    'order'                     => 'ASC',//以升序排列,DESC降序,RAND隨機
    'exclude'                   => null, //不排除任何標簽,將要被排除的標簽(term_id)的ID,各ID用逗號隔開。如 'exclude=5,27'表示不顯示term_id為5或27的標簽。
    'include'                   => null, //包括所有標簽,與上一個相反
    'topic_count_text_callback' => default_topic_count_text,//
    'link'                      => 'view', //設置鏈接,允許編輯某個指定標簽。edit,設置后直接跳轉到編輯標簽頁
    'taxonomy'                  => 'post_tag', //見參數
    'echo'                      => true,//顯示結果,或將結果保留在變量中
    'child_of'                  => null, // see Note!
); ?>

參數
format

<!-- 'format'                    => 'flat',-->
<a href="#" class="tag-link-10" title="1個話題" style="font-size: 12px;">兜兜1</a>
<a href="#" class="tag-link-10" title="1個話題" style="font-size: 12px;">兜兜2</a>
<!-- 'format'                    => 'list',-->
<ul class="wp-tag-cloud">
    <li><a href="#" class="tag-link-10" title="1個話題" style="font-size: 12px;">兜兜1</a></li>
    <li><a href="#" class="tag-link-10" title="1個話題" style="font-size: 12px;">兜兜2</a></li>
</ul>
<!-- 'format'                    => 'array',-->
函數以數組方式返回標簽云

taxonomy
(字符串)(可選)用以生成云的分類法。
'post_tag' —— (默認值)將文章標簽當作云的來源
'category' —— 用文章分類生成云
'link_category' —— 用鏈接分類目錄生成云

return:參考用法

wp_get_archives( $args );

get_archives( $args );可能已經被替代

顯示以日期為基礎的歸檔列表。可以在任何地方使用
wp_get_archives 輸出文章歸檔

用法

<?php $args = array(
    'type'            => 'monthly',//歸檔類型
    'limit'           => '',//文章數量
    'format'          => 'html',//歸檔輸出格式 
    'before'          => '',//之前顯示的文字
    'after'           => '',//之后顯示的文字
    'show_post_count' => false,//是否顯示文章數量
    'echo'            => 1,//是否顯示
    'order'           => 'DESC'//排序方式
); ?>

參數
type歸檔類型設置
可選值:

  • ‘yearly’ 按年
  • ‘monthly’按月
  • ‘daily’按日
  • ‘weekly’按周
  • ‘postbypost’羅列每一篇文章(以日期排序)
  • ‘alpha’ 羅列每一篇文章(以文章名排序)

limit文章數量限制,即歸檔的最大文章數量。
format歸檔輸出格式。
可選值:

  • ‘html’ -以html代碼格式輸出,即一個 li 列表
  • ‘option’ – 在 select 標簽中以選擇列表的形式輸出
  • ‘link’ – 在link標簽中輸出歸檔地址
  • ‘custom’ – 自定義,即使用after和before來包裹每一個項目。

before在每一條項目之前顯示的文字,只在 format 被設置為’html’或’custom’時可用。
after在每一條項目之后顯示的文字,只在 format 被設置為’html’或’custom’時可用。
show_post_count布爾值,是否顯示文章數量,在 type 被設置為’postbypost’或’alpha’時不可用。
echo布爾值,是否顯示,不顯示則返回給變量。
order排列順序
可選值

  • ASC順序
  • DESC逆序,默認

return

the_category( $separator, $parents, $post_id );

以鏈接形式顯示指定文章的分類,該標簽必須在循環中
the_category

參數

  • $separator 指定間隔符號,常用的有 (?)、(>)、( )、(->);
  • $parents 分類顯示方式,兩個值multiple和single;multiple顯示所有父分類,single只顯示指定文章的父分類
  • $post_id 文章的ID號;

return

<?php the_category(' > ','multiple'); ?>
<a href="#">技術</a> > <a href="#" rel="category tag">JavaScript+jQuery</a> >

wp_list_categories( $args );

將分類以列表的形式顯示為鏈接。
wp_list_categories(分類列表)

<?php 
    $args = array(
    'show_option_all'    => 'single.php',//如果樣式設置為list,且該值為非空字符串,8不知道怎么用,應該是連接到所有分類的一個頁面的鏈接
    'orderby'            => 'name',//排列順序
    'order'              => 'ASC',//升序降序
    'style'              => 'list',//顯示方式,可使用list或none
    'show_count'         => 1,//顯示文章數量
    'hide_empty'         => 0,//隱藏分類下沒有文章的分類?
    'use_desc_for_title' => 1,//是否將分類描述作為分類鏈接中的 title 屬性,在后臺里面設置
    'child_of'           => 0,//只顯示某一分類的子分類,數值為分類ID
    'feed'               => '',//顯示訂閱本分類的RSS的文字
    'feed_type'          => none,//字符串(官方文檔就這一句)
    'feed_image'         => '',//以圖片替換'feed'屬性:訂閱文字
    'exclude'            => '',//排除一個或多個分類。使用逗號分隔每個分類的ID。參數 include 必須為空。
    'exclude_tree'       => '',//排除分類樹。使用逗號分隔每個分類的ID。參數 include 必須為空。
    'include'            => '',//只顯示特定的分類,使用逗號分隔每個分類的ID
    'hierarchical'       => 1,//以層級來顯示分類的子分類。默認為 true(在分類的下面顯示它們的子分類)。有效值:
    'title_li'           => __( '列表的標題' ),//設置列表的標題
    'show_option_none'   => __( '' ),//
    'number'             => null,//設置顯示的分類數量
    'echo'               => 1,//顯示結果或保存在一個變量里
    'depth'              => 0,//顯示分類的深度(即顯示多少層的子分類)。默認值為 0(顯示所有分類和子分類)。
    'current_category'   => 0,//后跟分類ID號?
    'pad_counts'         => 1,//計算包括子分類的鏈接或文章數,設置后,子分類里面的文章個數添加到父分類中
    'taxonomy'           => 'category',//
    'walker'             => null//
    );
    wp_list_categories( $args ); 
?>

參數
orderby

  • ID
  • name - 默認
  • slug
  • count
  • term_group

return

get_search_form( $echo );

使用searchform.php主題文件中顯示搜索表單。

參數
return

paginate_links( $args );

用來檢索歸檔后的頁面分頁鏈接,可在任何區域使用

使用方法:

<?php echo paginate_links( $args ); ?>

參數
return

<?php bloginfo(''); ?>

參數
* name:輸出你的博客名稱
* description:輸出博客描述
* html_type:顯示HTML內容類型
* wpurl或url:返回網站的URL,現在不知道區別
* admin_email:作者的Email
* charset:返回網站所用的編碼格式
* language:返回網站所用的語言
* stylesheet_url:模板下style.css的絕對地址
* template_url:模板的絕對地址
* rss2_url:返回網站的RRS訂閱地址

return:字符串


等待學習

header.php文件第23-52行描述的內容
<?php wp_head() ?>與<?php wp_footer(); ?>
<?php wp_list_pages(); ?>
<?php the_content(); ?>
<?php comments_popup_link('0 條評論', '1 條評論', '% 條評論', '', '評論已關閉'); ?>
<?php get_header(); ?>
<?php get_sidebar() ?>
<?php get_footer() ?>


歡迎關注我的新博客:劉振的科技博客

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,826評論 18 139
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 當給sq...
    xuningbo閱讀 10,387評論 2 22
  • sqlmap用戶手冊 說明:本文為轉載,對原文中一些明顯的拼寫錯誤進行修正,并標注對自己有用的信息。 ======...
    wind_飄閱讀 2,077評論 0 5
  • 在上一個章節,我們已經創建了一個基礎的Blog程序。現在我們將使用一些Dajngo高級功能,去實現一個完整的blo...
    金金剛狼閱讀 3,603評論 1 12
  • 文件這節課老師講的挺好,創建,刪除文件,增加Creat,刪除Delete,寫入和讀取!今天李老師分享的個人成長歷程...
    張正戈hg閱讀 127評論 0 0