杰瑞科技汇

WordPress开发从哪学起?

WordPress 开发终极指南 (2025版)

这份教程将分为以下几个主要部分:

WordPress开发从哪学起?-图1
(图片来源网络,侵删)
  1. 准备阶段:环境搭建与核心概念
  2. 第一部分:主题开发 - 打造你的网站外观
  3. 第二部分:插件开发 - 增强网站功能
  4. 第三部分:进阶开发 - 深入 WordPress 核心
  5. 第四部分:最佳实践与工具
  6. 学习资源与社区

准备阶段:环境搭建与核心概念

在开始编码之前,你需要准备好开发环境并理解 WordPress 的基本工作原理。

1 环境搭建

强烈推荐使用本地开发环境,这样你可以在不影响线上网站的情况下进行开发和测试。

  • 推荐工具:
    • Local by Flywheel: (最推荐) 专为 WordPress 设计,一键创建、管理和开发多个本地 WordPress 网站,内置数据库、PHP 环境等,开箱即用。
    • XAMPP / MAMP: 经典的本地服务器环境,可以手动安装 WordPress,适合想深入了解服务器配置的开发者。
    • Docker: 高级开发者可以使用 Docker 和 docker-compose 搭建可复制的开发环境。

安装步骤 (以 Local 为例):

  1. 下载并安装 Local。
  2. 打开 Local,点击 "Add Site"。
  3. 填写网站名称(如 my-dev-site)、选择环境路径。
  4. 点击 "Add Site and Local will start it up",几分钟后,你的本地 WordPress 网站就运行在 http://my-dev-site.local 上了。

2 WordPress 核心概念

理解这几个核心概念是 WordPress 开发的基础:

WordPress开发从哪学起?-图2
(图片来源网络,侵删)
  • PHP: WordPress 是用 PHP 编写的,你需要掌握 PHP 的基本语法、变量、函数、循环、条件判断等。
  • HTML & CSS: 网页的骨架和样式,主题开发的核心。
  • JavaScript: 实现网页的交互功能。
  • MySQL: WordPress 的数据库,你不需要成为数据库专家,但需要了解基本的 SQL 查询,以及 WordPress 如何使用它。
  • WordPress 循环: 这是 WordPress 的核心,它从数据库中查询文章,然后使用 PHP 和 HTML 将它们显示在页面上,理解 The Loop 是主题开发的关键。
  • 模板层次结构: WordPress 根据你访问的页面类型(首页、文章页、分类页、404 页等)决定加载哪个 PHP 文件。
    • front-page.php -> 首页
    • home.php -> 博客文章列表页
    • single.php -> 单篇文章页
    • page.php -> 单页面
    • archive.php -> 归档页
    • php -> 404 错误页
    • header.phpfooter.php -> 网站的头部和尾部(被其他模板包含)
  • 钩子: 这是 WordPress 实现灵活性的魔法,钩子允许你在不修改核心文件的情况下,在特定位置“挂上”你自己的函数。
    • 动作钩子: 在特定事件发生时执行代码。wp_head<head> 标签结束前执行。
    • 过滤器钩子: 修改 WordPress 传递给它的数据,修改文章标题。

第一部分:主题开发

主题控制着网站的前端显示,我们将从创建一个简单的“空白”主题开始。

1 创建一个基础主题

  1. 在你的本地 WordPress 安装目录 wp-content/themes/ 下创建一个新文件夹,my-first-theme

  2. 在这个文件夹中,创建两个必需的文件:

    • style.css: 主题信息文件,WordPress 通过它识别主题。

      WordPress开发从哪学起?-图3
      (图片来源网络,侵删)
      /*
      Theme Name: My First Theme
      Theme URI: http://example.com/my-first-theme
      Author: Your Name
      Author URI: http://example.com
      Description: My 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
      */
    • index.php: 主题的主模板文件,如果没有更具体的模板,WordPress 就会使用它。

  3. 在 WordPress 后台“外观” -> “主题”中,你就能看到并激活 "My First Theme" 了,现在你的网站是空白的。

2 构建主题模板文件

让我们来填充这个主题,在 my-first-theme 文件夹中创建以下文件:

  1. 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>
        </header>
  2. footer.php

        <footer>
            <p>&copy; <?php echo date('Y'); ?> <?php bloginfo( 'name' ); ?></p>
        </footer>
        <?php wp_footer(); ?> <!-- 关键钩子,用于加载 JavaScript 等 -->
    </body>
    </html>
  3. index.php (更新内容)

    <?php get_header(); ?> <!-- 包含 header.php -->
    <main>
        <h1>Latest Posts</h1>
        <?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-content">
                        <?php the_excerpt(); // 显示文章摘要 ?>
                    </div>
                </article>
            <?php endwhile; ?>
        <?php else : ?>
            <p>Sorry, no posts found.</p>
        <?php endif; ?>
    </main>
    <?php get_footer(); ?> <!-- 包含 footer.php -->

现在刷新你的网站,你应该能看到一个包含最新文章列表的简单布局了。

3 使用函数和钩子

  1. 添加自定义样式表: 在 functions.php (主题的功能文件) 中添加:

    function my_theme_enqueue_styles() {
        wp_enqueue_style( 'main-style', get_stylesheet_uri() );
    }
    add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );

    这会告诉 WordPress 在加载网站时加载你的 style.css 文件。

  2. 创建单篇文章模板 (single.php): 创建 single.php 文件,用于显示单篇文章:

    <?php get_header(); ?>
    <main>
        <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
            <article>
                <h1><?php the_title(); ?></h1>
                <div class="entry-content">
                    <?php the_content(); // 显示文章全文 ?>
                </div>
            </article>
        <?php endwhile; endif; ?>
    </main>
    <?php get_footer(); ?>

4 主题定制器

functions.php 还可以用来添加主题定制器选项,让用户可以在后台自定义主题。

function my_theme_customize_register( $wp_customize ) {
    // 添加一个网站标题的设置
    $wp_customize->add_setting( 'my_theme_site_title_color', array(
        'default'   => '#000000',
        'transport' => 'refresh',
    ) );
    // 添加一个控制元素(颜色选择器)
    $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'my_theme_site_title_color_control', array(
        'label'      => __( 'Site Title Color', 'my-first-theme' ),
        'section'    => 'title_tagline',
        'settings'   => 'my_theme_site_title_color',
    ) ) );
}
add_action( 'customize_register', 'my_theme_customize_register' );
// 将设置应用到 CSS
function my_theme_customize_css() {
    ?>
    <style type="text/css">
        h1 a {
            color: <?php echo get_theme_mod( 'my_theme_site_title_color', '#000000' ); ?>;
        }
    </style>
    <?php
}
add_action( 'wp_head', 'my_theme_customize_css' );

现在用户可以在“外观” -> “定制”中更改网站标题的颜色了。


第二部分:插件开发

插件用于添加 WordPress 核心之外的功能,我们创建一个简单的“Hello World”插件。

1 创建插件

  1. wp-content/plugins/ 目录下创建一个新文件夹,hello-world-plugin
  2. 在该文件夹中创建一个 PHP 文件,hello-world.php

2 编写插件代码

hello-world.php 中添加以下代码:

<?php
/**
 * Plugin Name:       Hello World Plugin
 * Description:       A simple plugin that says hello to the world.
 * Version:           1.0.0
 * Author:            Your Name
 */
// 防止直接访问此文件
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}
// 添加一个动作钩子,在 wp_head 执行时运行我们的函数
add_action( 'wp_head', 'my_helloworld_css' );
function my_helloworld_css() {
    echo '<!-- Hello World Plugin is active! -->';
}
// 添加一个短代码 [hello]
add_shortcode( 'hello', 'my_helloworld_shortcode' );
function my_helloworld_shortcode() {
    return '<p style="color: red; font-size: 24px;">Hello, World from a shortcode!</p>';
}

3 激活并测试插件

  1. 在 WordPress 后台“插件”页面,激活 "Hello World Plugin"。
  2. 现在查看网站源代码,你会在 <head> 部分看到 <!-- Hello World Plugin is active! -->
  3. 创建或编辑一篇文章,在内容中输入 [hello],保存后预览,你会看到红色的 "Hello, World..." 文字。

这就是插件的基本工作原理:使用钩子或短代码来扩展 WordPress 的功能。


第三部分:进阶开发

当你掌握了基础后,可以探索更高级的主题。

  • 自定义文章类型: 创建除了“文章”和“页面”之外的内容类型,如“产品”、“作品集”、“团队成员”等,通过 register_post_type() 函数实现。
  • 自定义分类法和术语: 为自定义文章类型创建分类(如“产品分类”)和标签(如“产品特性”),通过 register_taxonomy() 函数实现。
  • REST API: 创建前端应用(如 React, Vue)或移动 App,通过 WordPress REST API 与后端数据进行交互。
  • 区块开发: 如果你熟悉 JavaScript,可以开始开发自定义区块,用于 Gutenberg 编辑器。
  • 安全性: 始终遵循 WordPress 的安全最佳实践,如使用 prepare() 函数处理数据库查询,对用户输入进行转义和验证,防止 SQL 注入和 XSS 攻击。

第四部分:最佳实践与工具

  • 版本控制: 必须使用 Git!将你的代码托管在 GitHub 或 GitLab 上,这不仅能防止代码丢失,还能协作和追踪变更。
  • 代码质量工具:
    • PHP_CodeSniffer: 检查你的 PHP 代码是否符合 WordPress 编码标准 (WordPress Coding Standards)。
    • WordPress VIP Go Coding Standards: 更严格的编码标准,适用于高性能网站。
  • 调试工具:
    • Query Monitor: (必备插件) 显示数据库查询、PHP 错误、钩子、缓存等信息,是开发调试的利器。
  • 文档:
    • WordPress Developer Resources: 官方开发者文档,是所有函数、钩子、类最权威的参考。

学习资源与社区

WordPress 开发是一个广阔的领域,但基础是相通的,从创建一个简单的主题开始,逐步学习使用钩子和函数,然后挑战开发插件和自定义文章类型。动手实践是最好的学习方式,遇到问题时,善用官方文档和社区,你会成为一名优秀的 WordPress 开发者,祝你开发愉快!

分享:
扫描分享到社交APP
上一篇
下一篇