要制作一個WordPress主題,首先要了解WordPress主題的基本模板構成以及常用的主題函數,這樣你的思路才會比較清晰,制作主題很會順暢很多。下面就根據前人以及自己在互聯網上搜集和整理的的經驗歸納總結,希望對大家有所幫助。


WordPress主題 – 常用模板文件及用途
style.css : CSS(樣式表)文件,一般包括主題聲明和通用css樣式代碼
index.php : 主頁模板,一般用來做網站的首頁
header.php : Header模板,一般是所有頁面的頭部公用部分
sidebar.php : 側邊欄模板,一般顯示Widget小工具
footer.php : Footer模板,一般放些“關于我們”的頁面鏈接、版權聲明和統計代碼等
archive.php : Archive/Category模板,用來顯示分類下的文章目錄
single.php : 內容頁(Post)模板
page.php : 內容頁(Page)模板
comments.php : 留言/回復模板
searchform.php : 搜索表單模板,也就是我們看到的搜索框
search.php : 搜索結果模板
404.php : Not Found 錯誤頁模板
author.php :作者文章目錄頁面,羅列某個作者的文章,對于多作者博客尤為必要
functions.php :模板函數,存放主題用到的函數模塊,起到舉足輕重的作用
attachment.php :附件模板頁面,WordPress的圖片或其他上傳的文件,都會賦予一個附件ID,如果你在插入圖片時,選擇鏈接到附件頁面,主題中沒有包含這個模板時就會報錯。
WordPress主題 – 判斷標簽
is_home() : 是否為主頁,首頁使用的是 index.php
is_front_page() :是否為指定的首頁,如果首頁不是默認的index.php,比如你在后臺 – 設置 – 閱讀,指定了首頁,就要用這個來判斷
is_single() : 是否為內容頁(Post)
is_page() : 是否為內容頁(Page)
is_attachment() :是否為附件頁
is_singular() :可以簡單理解為 is_single()||is_page()||is_attachment() 的綜合,但有區別
is_category() : 是否為Category/Archive頁
is_tag() : 是否為Tag存檔頁
is_date() : 是否為指定日期存檔頁
is_year() : 是否為指定年份存檔頁
is_month() : 是否為指定月份存檔頁
is_day() : 是否為指定日存檔頁
is_time() : 是否為指定時間存檔頁
is_archive() : 是否為存檔頁
is_search() : 是否為搜索結果頁
is_author() :是否為作者存檔頁
is_404() : 是否為 “HTTP 404: Not Found” 錯誤頁
is_paged() : 主頁/Category/Archive頁是否以多頁顯示
is_user_logged_in() :用戶是否登錄
以上的判斷標簽,比較常用于面包屑導航和側邊欄中,用于判斷不同的頁面加載不同的內容,可以多個搭配一起用,有些還可以定義參數,運用的好的話,可以制定出很多不同的顯示方案。


WordPress主題 – 常用PHP函數
<?php get_header(); ?> : 調用Header模板
<?php get_sidebar(); ?> : 調用Sidebar模板
<?php get_footer(); ?> : 調用Footer模板
<?php bloginfo(‘html_type’); ?> : 網頁Html類型
<?php bloginfo(‘charset’); ?> : 網頁編碼
<?php bloginfo(‘name’); ?> : 博客名稱(Title)
<?php bloginfo(‘url’); ?> : 博客 Url
<?php bloginfo(‘description’); ?> : 博客描述
<?php bloginfo(‘stylesheet_url’); ?> : CSS文件路徑
<?php bloginfo(‘template_url’); ?> : 模板文件路徑
<?php wp_head(); ?> : 頭部掛鉤(hook),非常重要的函數,基本上每一個主題都要用到,因為它是用來讓其他插件或功能函數在網站頭部輸出css、js等文件的,如果主題沒有這個函數,可能會造成很多插件無法正常使用,一般添加在 header.php 文件中
<?php wp_footer(); ?> : 底部掛鉤(hook),和 wp_head() 一樣重要,功能也基本一樣,一般添加在 footer.php 文件中
<?php wp_nav_menu(); ?> : 調用導航菜單(WP 3.0+),一般需要在 functions.php 添加注冊菜單函數 register_nav_menus() 一起使用
<?php wp_list_bookmarks();?> 友情鏈接函數,雖然 WP 3.5 取消了鏈接管理功能,但是這個函數還是非常有用的
<?php if(have_posts()) : ?> : 檢查是否存在Post/Page
<?php while(have_posts()) : the_post(); ?> : 如果存在Post/Page則顯示
<?php endwhile; ?> : While 結束
<?php else : ?> :如果 if 條件中不存在Post/Page ,就輸出其他內容
<?php endif; ?> : If 結束
<?php query_posts(); ?>: 限定Loop循環條件,更靈活地調用需要的文章
<?php wp_reset_query(); ?>:重置查詢數據,它必須使用在loop(循環)中,如果你使用了什么的
<?php query_posts(); ?> 函數獲取內容,那最好在獲取內容的最后添加這個函數,一般這兩個都是成對使用。
<?php the_title(); ?> : 內容頁(Post/Page)標題
<?php the_permalink() ?> : 內容頁(Post/Page) Url
<?php the_category(‘, ‘) ?> : 特定內容頁(Post/Page)所屬Category
<?php the_author(); ?> : 作者(只顯示作者名字,沒有鏈接)
<?php the_author_posts_link(); ?> :作者(顯示作者,并且包含鏈接到作者文章目錄的鏈接)
<?php the_time(‘Y-m-d’) ?> :顯示時間,時間格式由“字符串”參數決定,具體參考PHP手冊
<?php echo get_post_meta(); ?> : 獲取保存在 post_meta 這個表中的數據,比如輸出某個 自定義字段 的內容
<?php the_ID(); ?> : 特定內容頁(Post/Page) ID
<?php the_tags(‘關鍵字: ‘, ‘, ‘, ”); ?> :顯示文章的關鍵字tag
<?php the_excerpt(); ?> :Post/Page 的摘要,輸入文章發布頁面中的摘要面板的內容
<?php the_content(‘more’); ?> :Post/Page 的摘要,配合 <!–more–> 來使用
<?php the_content(); ?> : 顯示內容(Post/Page) 全文
<?php wp_list_pages(); ?> : 顯示Page列表,常用于顯示單篇文章的分頁,配合 <!–next page-> 來使用
<?php edit_post_link(); ?> : 如果用戶已登錄并具有權限,顯示編輯鏈接
<?php posts_nav_link(); ?> : 顯示上一頁/下一頁的鏈接,通常用在索引頁、分類頁和文章存檔頁
<?php previous_post_link(‘%link’, ‘上篇’, TRUE); ?> : 下一篇文章鏈接,通常用在單篇文章 single.php 中
<?php next_post_link(‘%link’, ‘下篇’, TRUE); ?> : 上一篇文章鏈接,通常用在單篇文章 single.php 中
<?php comments_popup_link(‘暫無評論’, ‘評論數 1’, ‘評論數 %’); ?> : 正文中的留言鏈接。如果使用 comments_popup_script(),則留言會在新窗口中打開,反之,則在當前窗口打開
<?php comments_template( ”, true ); ?> :顯示評論模塊
<?php include(TEMPLATEPATH . ‘/xxx/xxxx.php’); ?> : 嵌入其他文件,可為定制的模板或其他類型php文件,很常用
<?php echo get_avatar( get_the_author_email(), ’48’ ); ?> :根據作者郵箱輸出作者的頭像
<?php wp_list_categories(); ?> : 顯示Categories列表
<?php get_calendar(); ?> : 日歷
<?php wp_get_archives() ?> : 顯示內容存檔
<?php _e(‘Message’); ?> : 輸出相應信息
<?php wp_register(); ?> : 顯示注冊鏈接
<?php wp_loginout(); ?> : 顯示登錄/注銷鏈接
<?php timer_stop(1); ?> : 網頁加載時間(秒)
<?php echo get_num_queries(); ?> : 網頁加載查詢量
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。