前段時間研究WP(WordPress),整理了一些WP的常用函數,對于一個要求不高的主題來說,這些函數足夠了。
以后有時間再整理。
提示:使用Ctrl+F搜索你想找到功能或
本文主要參考了(無特殊說明,參考均來自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()
迭代主循環
return:true/false
參數:無
使用方法:參考have_posts()
the_permalink()
在循環函數(the_post())中返回當前URL,該標簽必須在循環中,由于是動態生成的URL(每次循環返回不同),所以不能用于指定某一特定的文章,如果想指定到特定文章,使用
get_permalink()
并指明文章的ID
參數:無
return:string
,即當前循環的URL
the_title()
類似
the_permalink()
,在循環函數(the_post())中返回當前文章標題,該標簽必須在循環中,如果想獲取到特定文章,使用get_the_title()
并指明文章的ID
參數:無
return:string
,即當前循環的標題
the_tags($before,$sep,$after)
循環列出文檔標簽,若沒有,返回空
參數:都是字符串,且都是可選的,依次是標簽之前,之間,之后顯示什么內容
return:string
,
<!-- 代碼 -->
<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,在循環中不要使用
return:string
,
<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 ); ?>
return:string
single_post_title()
類似
single_cat_title()
,如果單頁(欄目單頁或文章頁),顯示或返回頁面標題,只能在循環外使用
參數:同上
return:同上
wp_title ( string $sep = '?', bool $display = true, string $seplocation = '' )
顯示或檢索所有頁面的網頁標題
- $sep 多個標題間間隔符,默認是
?
- $display 是否顯示,默認
true
- $seplocation 顯示文本方向,默認為空字符串,可用
left
或right
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() ?>
歡迎關注我的新博客:劉振的科技博客