WordPress 主题开发指南:模板文件、函数与页面选型规则

  • 主题介绍?
    WordPress 主题(Theme),是用来控制网站外观和展示方式的一套模板文件和样式文件。简单来说,主题决定了你的网站"长什么样",包括页面布局、字体样式、颜色风格、文章展示形式、导航结构等。
    简单点说就是一套包含样式、特效、展示功能的预定义模板文件的集合。
    二.wordpress主题文件有哪些?
    1.index.php是主题的主模板文件,甚至有人专门使用这一个文件就完成了主题的开发。(网站简单或者屎山代码写法无限if...else)。
    2.style.css主样式文件,至少wordpress设计者是这样想的。实际大部分主题目前都不再这里写样式了,这个文件更多的沦为了主题介绍文件。
    3.front-page.php定义wordpress网站首页,选择静态页面和主页的时候优先级大于home.php
  1. home.php定义文章类型的网站首页,优先级大于index.php
  2. header.php公共头部文件
  3. footer.php公共底部文件
  4. Sidebar.php侧边栏文件
  5. searchform.php搜索表单,通常是一个form表单
  6. Comment.php是评论模板
  7. 404.php是网站404页面的模板,一般需要服务器的配置支持,
  8. Search.php是搜索表单结果页模板,展示搜索的内容
  9. Date.php日期归档页,优先级:Date.php>archive.php>index.php
  10. 附件类型.php(例如图片的image.php,视频的video.php)附件模板,优先级image.php(等)>text_plain.php>plain.php>text.php>attachment.php>single-attachment.php>single.php>index.php
  11. Author.php作者页模板,优先级:author-作者昵称.php>author-作者ID.php>author.php>archive.php>index.php
  12. 文章归档页模板,优先级:archive-文章类型.php(例如:archive-post.php)>archive.php>index.php
    16. taxonomy.php自定义分类页,优先级:taxonomy-分类法-分类slug.php(例如:分类类型是:luntan_cate,分类slug是food代表食物分类,那么taxonomy-luntan_cate-goods.php)>taxonomy-分类法.php>taxonomy.php>archive.php
  13. tag.php标签分类页,优先级:tag-tag的slug.php>tag-tag的id.php>tag.php>archive.php>index.php
    18. category.php文章分类模板(特指post类型的文章),优先级:category-分类slug.php>category-分类ID.php>category.php>archive.php>index.php
    19. page.php页面模板(特指page类型的文章),优先级page-页面slug.php>page-页面ID.php>page.php>singular.php>index.php
    20. single.php文章模板,优先级:single-文章类型-文章slug.php>single-文章类型.php>single.php>singular.php>index.php
    三.模板文件的选择
    看了这么多模板文件那么怎么选择呢?
    1.看网站类型,例如博客站:index.php首页模板、archive.php分类、tag、搜索页模板,single.php文章落地页模板,企业站:index.php首页模板,其他页面是用page-slug.php或page-ID.php
    2.看功能:例如侧重搜索使用search.php,侧重用户发布可以使用author.php,侧重时光轴有历史沉淀感觉可以使用date.php
    3.看层级:例如:tag.php、category.php、date.php这种都是列表模板,single.php、page.php都是落地页的模板。如果首页是一级的,那么列表页是二级模板,落地页是三级模板
  • wordpress的文件是以php为后缀的文件,里面是PHP + HTML + CSS + JavaScript 的混合应用。所以就会有很多的预设函数,这里简单介绍一些常用的函数
    1.get_header函数是打印/加载header.php,例如在index.php的顶部加上这个函数就可以加载公共头部了
  1. 加载公共底部footer.php,用法与get_header类似
    3.bloginfo输出wordpress信息,例如:bloginfo( 'name' )加载博客标题(网站名)
    4.if ( have_posts() ) : while ( have_posts() ) : the_post(); 循环文章
    再循环里面可以使用:the_content获取文章内容、the_title获取文章标题、the_excerpt获取文章简介(会有wordpress预设样式,嫌丑可以用get_post函数实现)the_ID获取ID等
    5.is_home判断是否是主页、is_admin判断是否是管理员、is_single是否是单页或者文章等判断函数
    6.get_sidebar加载侧边栏sidebar.php
    7.get_template_part加载模板,例如:get_template_part( 'content', 'product' )加载content目录下的product.php
相关推荐
AskHarries7 分钟前
不用公网 IP,把 Windows 和 Linux 服务器放进同一个局域网:Tailscale 组网实战
后端
神奇小汤圆9 分钟前
Java 的1 亿次对象创建:JVM 开启 / 关闭逃逸分析,GC 性能差距巨大
后端
tangdou36909865512 分钟前
AI真好玩系列-2分钟快速了解DeepAgents | Quick Guide to DeepAgents in 2 Minutes
前端·javascript·后端
神奇小汤圆28 分钟前
面试官:MySQL 为什么要是使用 MVCC?原理是什么?
后端
像我这样帅的人丶你还36 分钟前
Java 后端详解(五):Redis 缓存
java·后端·全栈
玉宇夕落1 小时前
别再死磕 Prompt 了!上下文工程 (Context Engineering) 的简单学习
后端
用户34232323763171 小时前
定时器与 PWM 输出详解
后端
Jason_chen2 小时前
Linux 6.2 CAN/CANFD机制详解
后端
Apifox3 小时前
Apifox 6 月更新|Apifox CLI 全面升级、导入导出优化、OAuth 2.0 支持自动刷新令牌
前端·后端·测试
悟空瞎说3 小时前
NestJS 接口设计避坑:摒弃万能用户更新接口,落地单一职责与最小权限原则
后端·nestjs