WordPress模板的定义非常方便,但是在定制模板之前,我们有必要知道WordPress的模板层次,了解WordPress是如何加载模板文件的,这将有利于开发模板时合理利用资源及提高工作效率。
我们已知道一个最简单的WordPress主题只需要 style.css 和 index.php 文件即可。这代表着 index.php 可以是任何一个页面的模板,无论是首页,还是文章页,或是分类页,再或者是搜索结果页面,它都能完美胜任。
也就是说,当对应的模板不存在时, index.php 将是WordPress最后的底牌。
下面让我们来了解一下WordPress都是怎么加载模板的
标签页模板加载顺序和分类页一样,只不过前缀不过 category 而是 tag (如 tag-{slug}.php)。
有时候除了WordPress默认的分类目录和标签我们还需要其他的分类方法,这时候我们就会注册一个新的分类法,那么在此之前知道分类法的模板加载顺序也是十分必要的。以下说明假设自定义分类法是 people 这个名字:
除了自定义分类法,有时候我们也需要自定义文章类型
上面用文字详细讲述了WordPress模板的加载顺序,尽管详细,但还不如一张信息图更为直观,以下就是WordPress的模板层次结构图。(点击图片可在新窗口查看大图)
在某些使用场景(如插件),我们并不能直接修改模板文件,这时候我们可以使用钩子来实现修改模板文件,钩子名称是 {$type}_template 这样的格式,以下是对应的完整的钩子名称列表:
以下是一个使用例子(让页面加载 single.php 文章页的模板):
<span class="kwd">function</span><span class="pln"> page_template_filter</span><span class="pun">(</span><span class="pln"> $templates</span><span class="pun">=</span><span class="str">''</span> <span class="pun">){</span>
<span class="pln">$templates</span><span class="pun">=</span><span class="pln">locate_template</span><span class="pun">(</span><span class="str">"single.php"</span><span class="pun">,</span><span class="kwd">false</span><span class="pun">);</span>
<span class="kwd">return</span><span class="pln"> $templates</span><span class="pun">;</span>
<span class="pun">}</span>
<span class="pln">add_filter</span><span class="pun">(</span> <span class="str">'page_template'</span><span class="pun">,</span> <span class="str">'page_template_filter'</span> <span class="pun">);</span>
一般情况下,在一个特定的模板中我们能清楚知道应该怎么输出特定的样式和内容,但在一些通用模板中(如header.php )我们想要知道用户当前访问的是哪个页面模板就需要借助WordPress内置的条件判断函数了,这些函数可以帮助我们判断当前是什么页面以方便加载不同的模板内容,如 is_home() 则是判断首页的条件标签,is_single() 则是判断文章页的条件标签,等等。
你必须 登录 后才能发表评论。
拥有多年WordPress博客/企业建站开发经验,独树一帜的设计,提供最专业的网站设计方案;原创的主题标签语义化,增强网站优化效果。
增强用户体验、提高品牌形象给人留下深刻的印象,那就选择我们,我们的每一款主题都是独一无二的,都有自己的灵魂,每款主题都有各自的配色方案。
遵循现代网页设计的趋势,所有主题都提供完整的响应式布局,优化大桌面显示器以及对平板和智能手机的支持,从而提供一致性的用户体验。
长期及时地在线售后服务和免费升级更新,确保您的网站始终运行在最佳状态,24小时QQ在线的沟通方式免去您的后顾之忧,替您节省网站维护成本。
目前还没有评。