杰瑞科技汇

WordPress主题制作教程从哪学?零基础能学会吗?

WordPress 主题制作终极指南

第一部分:准备工作与核心概念

在开始编码之前,我们需要了解一些基本概念和准备工作。

WordPress主题制作教程从哪学?零基础能学会吗?-图1
(图片来源网络,侵删)

什么是 WordPress 主题?

WordPress 主题就是网站的“皮肤”和“骨架”,它决定了网站的外观(颜色、字体、布局)和部分前端功能,主题包含一系列 PHP 模板文件、CSS 样式表、JavaScript 文件以及图片资源。

核心特性:

  • 分离关注点:主题只负责网站的“展示层”(Front-end),不处理数据(如文章、评论等),数据由 WordPress 核心和插件管理。
  • 模板系统:WordPress 使用一套模板文件系统(如 header.php, index.php, single.php)来动态构建网页。
  • 函数文件functions.php 是主题的“大脑”,用于添加主题支持、注册导航菜单、设置侧边栏等。

开发环境准备

强烈建议在本地电脑上进行开发,而不是直接在线上网站操作,推荐使用 Local (由 WP Engine 开发,非常易用) 或 XAMPP/MAMP 这类本地服务器环境。

必备工具

  • 代码编辑器:强烈推荐 Visual Studio Code (免费、强大、插件丰富)。
  • 浏览器开发者工具:所有现代浏览器(Chrome, Firefox, Edge)都内置了强大的开发者工具,用于检查 HTML/CSS、调试 JavaScript 和响应式布局。
  • 版本控制:学习使用 GitGitHub/GitLab 来管理你的代码,这是专业开发者的必备技能。

第二部分:创建你的第一个主题

我们将从零开始,创建一个名为 my-first-theme 的主题。

WordPress主题制作教程从哪学?零基础能学会吗?-图2
(图片来源网络,侵删)

步骤 1:创建主题文件夹

在你的 WordPress 安装目录下的 wp-content/themes/ 文件夹中,创建一个新的文件夹,命名为 my-first-theme

wordpress/
└── wp-content/
    └── themes/
        └── my-first-theme/  <-- 你的主题文件夹

步骤 2:创建核心文件

一个最基本、可工作的 WordPress 主题只需要两个文件:

  1. style.css (样式表)
  2. index.php (主页模板)

a) 创建 style.css

这个文件是 WordPress 识别主题的关键,必须在文件顶部添加一个注释块,包含主题的元信息。

WordPress主题制作教程从哪学?零基础能学会吗?-图3
(图片来源网络,侵删)
/*
Theme Name: My First Theme
Theme URI: https://example.com/my-first-theme
Author: Your Name
Author URI: https://example.com
Description: My very first WordPress theme.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-first-theme
*/
  • Theme Name: (必需) 主题的显示名称。
  • Version: (必需) 主题版本号。

b) 创建 index.php

这个文件是主题的主模板,我们只放一句最简单的话来测试。

<?php
// 这是一句 PHP 代码,确保文件以 PHP 开头
echo '<h1>Hello, WordPress World!</h1>';
?>

步骤 3:激活主题

  1. 启动你的本地 WordPress 网站。
  2. 登录到 WordPress 后台。
  3. 导航到 外观 -> 主题
  4. 你应该能在“我的主题”部分看到 "My First Theme"。
  5. 点击 “激活” 按钮。

访问你的网站首页,你应该能看到 "Hello, WordPress World!" 的标题,恭喜,你已经成功创建了第一个主题!


第三部分:WordPress 模板层级

WordPress 使用一套聪明的模板系统来决定显示哪个文件,当访问一个页面时,它会按以下顺序查找文件,找到第一个存在的文件就使用它,不再继续查找。

对于单篇文章页面:

  1. single-{post-type}.php (single-post.php 用于文章,single-product.php 用于 WooCommerce 产品)
  2. single.php
  3. singular.php
  4. index.php

常用模板文件及其作用:

  • header.php: 网页的头部,通常包含 <head> 标签、网站标题、Logo 和主导航菜单。
  • footer.php: 网页的页脚,通常包含版权信息、底部小工具等。
  • index.php: 主页模板,也是所有模板的“后备”模板。
  • home.php: 首页模板,当在后台设置“首页显示”为“最新文章”时生效。
  • front-page.php: 静态首页模板,当在后台设置“首页显示”为“一个静态页面”时生效。
  • single.php: 单篇文章页面模板。
  • page.php: 单页面(如“关于我们”、“联系我们”)模板。
  • archive.php: 归档页面模板(如按分类、标签、月份、作者归档的文章列表)。
  • search.php: 搜索结果页面模板。
  • php: 404 错误页面模板。
  • comments.php: 评论模板。
  • sidebar.php: 侧边栏模板。

步骤 4:拆分模板文件

让我们把 index.php 拆分成更标准的三部分:header.php, index.php, footer.php

a) 创建 header.php

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
    <header>
        <h1><a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
        <p><?php bloginfo( 'description' ); ?></p>
        <nav>
            <?php
            wp_nav_menu( array(
                'theme_location' => 'primary', // 我们稍后会注册这个菜单
                'menu_class'     => 'nav-menu',
            ) );
            ?>
        </nav>
    </header>
    <div id="content">
  • <?php language_attributes(); ?>: 输出语言属性,如 lang="zh-CN"
  • <?php bloginfo( 'charset' ); ?>: 输出网站字符集,通常是 UTF-8
  • <?php wp_head(); ?>: 极其重要!这个钩子会加载所有必要的 CSS 和 JavaScript,必须放在 </head> 之前。
  • <?php body_class(); ?>: 为 <body> 标签添加有用的 CSS 类,方便样式定制。
  • <?php bloginfo( 'name' ); ?>: 输出网站标题。
  • <?php esc_url( home_url( '/' ) ); ?>: 安全地获取网站首页 URL。

b) 创建 footer.php

    </div><!-- #content -->
    <footer>
        <p>&copy; <?php echo date('Y'); ?> <?php bloginfo( 'name' ); ?>. All rights reserved.</p>
    </footer>
    <?php wp_footer(); ?>
</body>
</html>
  • <?php wp_footer(); ?>: 极其重要!这个钩子会加载 WordPress 在页脚需要的脚本,必须放在 </body> 之前。

c) 修改 index.php

index.php 变得非常简洁,只需要包含这三个部分。

<?php get_header(); ?>
    <main>
        <h2>最新文章</h2>
        <?php if ( have_posts() ) : ?>
            <?php while ( have_posts() ) : the_post(); ?>
                <article>
                    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                    <div class="entry-meta">
                        发布于 <?php echo get_the_date(); ?> 作者 <?php the_author(); ?>
                    </div>
                    <div class="entry-content">
                        <?php the_excerpt(); // 显示文章摘要 ?>
                    </div>
                </article>
            <?php endwhile; ?>
        <?php else : ?>
            <p>抱歉,没有找到任何文章。</p>
        <?php endif; ?>
    </main>
<?php get_sidebar(); // 稍后添加侧边栏 ?>
<?php get_footer(); ?>
  • <?php get_header(); ?>: 包含 header.php 文件。
  • <?php get_footer(); ?>: 包含 footer.php 文件。
  • <?php get_sidebar(); ?>: 包含 sidebar.php 文件。
  • have_posts()the_post(): WordPress 主循环,用于遍
分享:
扫描分享到社交APP
上一篇
下一篇