WordPress主题模板层次和常用模板函数
2015-02-10  高端网站定制
  当然,特指某个WordPress主题(现在的英文主题已经发展到了更加多元化的主题元素),可能不止这些文件,但一般而言,这些文件是每个WordPress主题基本必备的。

  WordPress主题 - 判断Tag
  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主题里常常应用于侧边栏(sidebay)模板文件,就比如 is_home()  ,例如你放了一段广告代码在侧边栏上,而又只想在主页上显示这个广告,那么就可以用到这个判断Tag了。

  WordPress主题 – Header 常用PHP函数
  <?php bloginfo('name'); ?>  : 博客名称(Title)
  <?php bloginfo('stylesheet_url'); ?>  : CSS文件路径
  <?php bloginfo('pingback_url'); ?>  : PingBack Url
  <?php bloginfo('template_url'); ?>  : 模板文件路径
  <?php bloginfo('version'); ?>  : WordPress版本
  <?php bloginfo('atom_url'); ?>  : Atom Url
  <?php bloginfo('rss2_url'); ?>  : RSS 2.o Url
  <?php bloginfo('url'); ?>  : 博客 Url
  <?php bloginfo('html_type'); ?>  : 博客网页Html类型
  <?php bloginfo('charset'); ?>  : 博客网页编码
  <?php bloginfo('description'); ?>  : 博客描述
  <?php wp_title(); ?>  : 特定内容页(Post/Page)的标题
  WordPress主题 - 模板常用的PHP函数
  <?php get_header(); ?>  : 调用Header模板
  <?php get_sidebar(); ?>  : 调用Sidebar模板
  <?php get_footer(); ?>  : 调用Footer模板
  <?php the_content(); ?>  : 显示内容(Post/Page)
  <?php if(have_posts()) " ?>  : 检查是否存在Post/Page
  <?php while(have_posts()) " the_post(); ?>  : 如果存在Post/Page则予以显示
  <?php endwhile; ?>  : While 结束
  <?php endif; ?>  : If 结束
  <?php the_time('字符串') ?>  : 显示时间,时间格式由“字符串”参数决定,具体参考PHP手册
  <?php comments_popup_link(); ?>  : 正文中的留言链接。如果使用 comments_popup_script() ,则留言会在新窗口中打开,反之,则在当前窗口打开
  <?php the_title(); ?>  : 内容页(Post/Page)标题
  <?php the_permalink() ?>  : 内容页(Post/Page) Url
  <?php the_category(', ') ?>  : 特定内容页(Post/Page)所属Category
  <?php the_author(); ?>  : 作者
  <?php the_ID(); ?>  : 特定内容页(Post/Page) ID
  <?php edit_post_link(); ?>  : 如果用户已登录并具有权限,显示编辑链接
  <?php get_links_list(); ?>  : 显示Blogroll中的链接
  <?php comments_template(); ?>  : 调用留言/回复模板
  <?php wp_list_pages(); ?>  : 显示Page列表
  <?php wp_list_categories(); ?>  : 显示Categories列表
  <?php next_post_link(' %link '); ?>  : 下一篇文章链接
  <?php previous_post_link('%link'); ?>  : 上一篇文章链接
  <?php get_calendar(); ?>  : 日历
  <?php wp_get_archives() ?>  : 显示内容存档
  <?php posts_nav_link(); ?> : 导航,显示上一篇/下一篇文章链接
  <?php include(TEMPLATEPATH . '/文件名'); ?> : 嵌入其他文件,可为定制的模板或其他类型文件
  WordPress主题 - 与模板相关的其他函数
  <?php _e('Message'); ?> : 输出相应信息
  <?php wp_register(); ?> : 显示注册链接
  <?php wp_loginout(); ?> : 显示登录/注销链接
  <!–next page-> : 将当前内容分页
  <!–more–> : 将当前内容截断,以不在主页/目录页显示全部内容
  <?php timer_stop(1); ?> : 网页加载时间(秒)
  <?php echo get_num_queries(); ?>: 网页加载查询量
  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

  搞懂上面的一些基本Tag和PHP代码对你修改WordPress起到很大的帮助,建议大家可以备份一下这篇文章,往后有需要用上可以拿来参考一下。当然,如果你是HTML老手,DVI+CSS高手,PHP圣手的话,就没有这个必要咯!