WordPress的模板层次

时间:2017-04-09

搜索结果页

    首先被考虑的是 search.php 搜索结果模板如果没有搜索结果模板则加载 index.php模板

附件页

首先会按MIME类型加载模板(如 image.php, video.php, application.php,而 text/plain 类型则按顺序尝试加载 text.php, plain.php, text_plain.php 这三个文件。如果没有对应的MIME类型模板则 attachment.php 附件模板(如没有 attachment.php 则加载 single-attachment.php )如果没有附件模板则加载 single.php 文章页模板如果连 single.php 文章页模板都没有则加载 index.php 模板

模板层次图

上面用文字详细讲述了WordPress模板的加载顺序,尽管详细,但还不如一张信息图更为直观,以下就是WordPress的模板层次(2)结构图。

1421995372_42

使用钩子修改模板

在某些使用场景(如插件),我们并不能直接修改模板文件,这时候我们可以使用钩子来实现修改模板文件,钩子名称是 {$type}_template 这样的格式,以下是对应的完整的钩子名称列表:

index_template

404_template

archive_template

author_template

category_template

tag_template

taxonomy_template

date_template

home_template

front_page_template

page_template

paged_template

search_template

single_template

text_template, plain_template, text_plain_template (all mime types)

attachment_template

comments_popup

以下是一个使用例子(让页面加载 single.php 文章页的模板):

function page_template_filter( $templates=''){

$templates=locate_template("single.php",false);

return $templates;

}

add_filter('page_template','page_template_filter');

模板页面判断

一般情况下,在一个特定的模板中我们能清楚知道应该怎么输出特定的样式和内容,但在一些通用模板中(如 header.php )我们想要知道用户当前访问的是哪个页面模板就需要借助WordPress内置的条件判断函数了,这些函数可以帮助我们判断当前是什么页面以方便加载不同的模板内容,如 is_home() 则是判断首页的条件标签,is_single() 则是判断文章页的条件标签,等等。

  • 共2页:
  • 上一页
  • 2/2下一篇
    上一篇:提高性能!五种WordPress防止垃圾评论方法 下一篇:WordPress 自定义文章列表列的实现方法

    相关文章

    最新文章