WordPress 是目前世界上使用最广泛的博客系统,是一款开源的PHP软件,下面整理了一下制作WordPress主题的相关知识。
WordPress主题加载顺序
WordPress主题模板层次
首页
home.php
index.php
文章页
single-{post_type}.php – 如果文章类型是videos(即视频),WordPress就会去查找single-videos.php(WordPress 3.0及以上版本支持)
single.php
index.php
页面
自定义模板 – 在WordPress后台创建页面的地方,右侧边栏可以选择页面的自定义模板
page-{slug}.php – 如果页面的缩略名是news,WordPress将会查找 page-news.php(WordPress 2.9及以上版本支持)
page-{id}.php – 如果页面ID是6,WordPress将会查找page-6.php
page.php
index.php
分类
category-{slug}.php – 如果分类的缩略名为news,WordPress将会查找category-news.php(WordPress 2.9及以上版本支持)
category-{id}.php -如果分类ID为6,WordPress将会查找category-6.php
category.php
archive.php
index.php
标签
tag-{slug}.php – 如果标签缩略名为sometag,WordPress将会查找tag-sometag.php
tag-{id}.php – 如果标签ID为6,WordPress将会查找tag-6.php(WordPress 2.9及以上版本支持)
tag.php
archive.php
index.php
作者
author-{nicename}.php – 如果作者的昵称为rami,WordPress将会查找author-rami.php(WordPress 3.0及以上版本支持)
author-{id}.php – 如果作者ID为6,WordPress将会查找author-6.php(WordPress 3.0及以上版本支持)
author.php
archive.php
index.php
日期页面
date.php
archive.php
index.php
搜索结果
search.php
index.php
404 (未找到)页面
404.php
index.php
附件页面
MIME_type.php – 可以是任何MIME类型 (image.php, video.php, audio.php, application.php 或者其他).
attachment.php
single.php
index.php
WordPress主题中对页面的判断
<?php is_home() // 是否为主页 is_single() // 是否为内容页(Post) is_page() // 是否为内容页(Page) is_category() // 是否为Category/Archive页 is_tag() // 是否为Tag存档页 is_date() // 是否为指定日期存档页 is_year() // 是否为指定年份存档页 is_month() // 是否为指定月份存档页 is_day() // 是否为指定日存档页 is_time() // 是否为指定时间存档页 is_archive() // 是否为存档页 is_search() // 是否为搜索结果页 is_404() // 是否为 “HTTP 404: Not Found” 错误页 is_paged() // 主页/Category/Archive页是否以多页显示 ?>
判断Tag在WordPress主题里常用于侧边栏(sidebar.php)模板文件
WordPress模板header中常用函数
<?php bloginfo('name') // 博客名称(Title) bloginfo('stylesheet_url') // CSS文件路径 bloginfo('pingback_url') // PingBack Url bloginfo('template_url') // 模板文件路径 bloginfo('version') // WordPress版本 bloginfo('atom_url') // Atom Url bloginfo('rss2_url') // RSS 2.o Url bloginfo('url') // 博客 Url bloginfo('html_type') // 博客网页Html类型 bloginfo('charset') // 博客网页编码 bloginfo('description') // 博客描述 wp_title() // 特定内容页(Post/Page)的标题 ?>
WordPress主题模板常用的函数
<?php get_header() // 调用Header模板 get_sidebar() // 调用Sidebar模板 get_footer() // 调用Footer模板 the_content() // 显示内容(Post/Page) the_time('字符串') // 显示时间,时间格式由“字符串”参数决定,具体参考PHP手册 comments_popup_link() // 正文中的留言链接。如果使用 comments_popup_script,则留言会在新窗口中打开,反之,则在当前窗口打开 the_title() // 内容页(Post/Page)标题 the_permalink() // 内容页(Post/Page) Url the_category(',') // 特定内容页(Post/Page)所属Category the_author() // 作者 the_ID() // 特定内容页(Post/Page) ID edit_post_link() // 如果用户已登录并具有权限,显示编辑链接 get_links_list() // 显示Blogroll中的链接 comments_template() // 调用留言/回复模板 wp_list_pages() // 显示Page列表 wp_list_categories() // 显示Categories列表 next_post_link('%link') // 下一篇文章链接 previous_post_link('%link') // 上一篇文章链接 get_calendar() // 日历 wp_get_archives() // 显示内容存档 posts_nav_link() // 导航,显示上一篇/下一篇文章链接 include(TEMPLATEPATH . '/文件名') // 嵌入其他文件,可为定制的模板或其他类型文件 if(have_posts()): // 检查是否存在Post/Page while(have_posts()): the_post(); // 如果存在Post/Page则予以显示 endwhile; // While 结束 endif; // If 结束 ?>
WordPress主题中与模板相关的其他函数
<?php _e('Message') // 输出相应信息 wp_register() // 显示注册链接 wp_loginout() // 显示登录/注销链接 timer_stop(1) // 网页加载时间(秒) echo get_num_queries() // 网页加载查询量 <!–next page-> // 将当前内容分页 <!–more–> // 将当前内容截断,以不在主页/目录页显示全部内容 ?>