Skip to content

主题与插件

WordPress 主题

什么是主题?

主题控制网站的外观和视觉设计,包括布局、颜色、字体等。

安装主题

方式一:从官方库安装

  1. 进入 外观 → 主题
  2. 点击 添加
  3. 搜索或浏览主题
  4. 点击 安装启用

方式二:上传主题文件

bash
# 主题应打包为 ZIP 文件
# 上传到 wp-content/themes/ 目录并解压
wp-content/themes/
├── twenty-twentyfour/
├── your-theme/
   ├── style.css          # 必须:主题样式表
   ├── index.php          # 必须:主模板文件
   ├── functions.php      # 可选:主题函数
   ├── header.php         # 页头
   ├── footer.php         # 页脚
   └── screenshot.png     # 主题预览图

主题样式表(style.css)

每个主题必须包含 style.css 文件头:

css
/*
Theme Name: 我的自定义主题
Theme URI: https://example.com/my-theme
Author: 开发者名称
Author URI: https://example.com
Description: 这是一个简洁、现代化的 WordPress 主题
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-theme
Tags: blog, one-column, two-columns, custom-colors, custom-menu, 
      custom-logo, editor-style, featured-images, footer-widgets,
      block-patterns, block-styles, wide-blocks, accessibility-ready
*/

/* 主题样式从这里开始 */
body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    line-height: 1.6;
    color: #333;
}

热门免费主题

主题特点适合场景
Twenty Twenty-Four最新默认主题,多用途各类网站
Hello Elementor配合 Elementor 使用页面构建
GeneratePress轻量、快速企业/博客
Astra高性能、多功能各类网站
StorefrontWooCommerce 官方主题电商网站

热门付费主题

主题类型价格区间
Flatsome多功能商城$59
Divi可视化构建器$89/年
Avada销量最高$59
Jupiter X多功能$59

WordPress 插件

什么是插件?

插件用于扩展 WordPress 功能,可以添加任何你想要的功能而无需修改核心代码。

安装插件

方式一:从官方库安装

  1. 进入 插件 → 安装插件
  2. 搜索插件名称或关键词
  3. 点击 现在安装启用

方式二:上传插件

bash
# 上传 ZIP 文件或解压到插件目录
wp-content/plugins/
├── akismet/           # 反垃圾评论
├── hello dolly/       # 示例插件
└── my-plugin/         # 你的插件
    ├── my-plugin.php  # 主文件
    └── readme.txt    # 说明文档

必须安装的插件

Essential Plugins

以下插件是强烈推荐安装的:

安全类

插件功能评分
Wordfence Security防火墙、安全扫描⭐ 4.8
Sucuri Security网站安全⭐ 4.7
Loginizer登录安全⭐ 4.9

性能类

插件功能评分
WP Super Cache页面缓存⭐ 4.3
W3 Total Cache综合缓存⭐ 4.5
LiteSpeed Cache服务器缓存⭐ 4.8
Smush图片优化⭐ 4.8

SEO 类

插件功能评分
Yoast SEO综合 SEO⭐ 4.8
Rank Math新兴 SEO⭐ 4.9
All in One SEO综合 SEO⭐ 4.6

备份类

插件功能评分
UpdraftPlus备份恢复⭐ 4.8
Duplicator迁移复制⭐ 4.7
BackWPup定时备份⭐ 4.4

插件开发基础

最简单的插件结构

php
<?php
/**
 * Plugin Name: 我的第一个插件
 * Plugin URI: https://example.com/my-first-plugin
 * Description: 这是一个示例插件,用于演示插件开发
 * Version: 1.0.0
 * Author: 开发者名称
 * Author URI: https://example.com
 * License: GPL v2 or later
 * Text Domain: my-first-plugin
 */

// 防止直接访问
defined('ABSPATH') or die('直接访问被禁止!');

// 定义插件常量
define('MFP_VERSION', '1.0.0');
define('MFP_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('MFP_PLUGIN_URL', plugin_dir_url(__FILE__));

// 加载插件文件
require_once MFP_PLUGIN_DIR . 'includes/functions.php';
require_once MFP_PLUGIN_DIR . 'includes/shortcodes.php';

// 激活钩子
register_activation_hook(__FILE__, 'mfp_activate');
register_deactivation_hook(__FILE__, 'mfp_deactivate');

/**
 * 插件激活时执行
 */
function mfp_activate() {
    // 创建选项
    add_option('mfp_version', MFP_VERSION);
    
    // 刷新永久链接
    flush_rewrite_rules();
}

/**
 * 插件停用时执行
 */
function mfp_deactivate() {
    // 清理工作
    flush_rewrite_rules();
}

插件目录结构(推荐)

my-plugin/
├── my-plugin.php          # 主文件
├── uninstall.php          # 卸载时清理
├── readme.txt             # WordPress.org 说明
├── languages/             # 翻译文件
├── includes/              # 核心功能
│   ├── class-plugin.php   # 主类
│   ├── functions.php      # 公共函数
│   └── shortcodes.php     # 短代码
├── admin/                 # 后台文件
│   ├── css/
│   ├── js/
│   └── partials/
├── public/                # 前台文件
│   ├── css/
│   ├── js/
│   └── partials/
└── assets/               # 静态资源
    ├── images/
    └── icons/

插件最佳实践

1. 命名约定

php
// 函数前缀避免冲突
function my_plugin_unique_function_name() { }

// 类名使用 CamelCase
class MyPluginSettingsPage { }

// 过滤器/动作名称使用插件前缀
add_filter('my_plugin_content_filter', 'my_filter_function');
add_action('my_plugin_init', 'my_action_function');

2. 安全检查

php
<?php
// 始终检查权限
if (!current_user_can('manage_options')) {
    wp_die('权限不足!');
}

// 使用 Nonce 验证
if (!wp_verify_nonce($_POST['my_nonce'], 'my_action')) {
    wp_die('安全验证失败!');
}

// 转义输出
echo esc_html($user_input);
echo esc_attr($class_name);
echo esc_url($url);
echo wp_kses_post($html_content);

3. 国际化

php
<?php
// 加载文本域
function my_plugin_load_textdomain() {
    load_plugin_textdomain(
        'my-plugin',
        false,
        dirname(plugin_basename(__FILE__)) . '/languages/'
    );
}
add_action('init', 'my_plugin_load_textdomain');

// 使用翻译函数
__('Hello World', 'my-plugin');
_e('Welcome to my plugin', 'my-plugin');

主题与插件的关系

┌─────────────────────────────────────────────┐
│              WordPress 核心                 │
├─────────────────────────────────────────────┤
│                                             │
│   ┌─────────┐     ┌──────────────────────┐  │
│   │  主题   │ ←→  │       插件           │  │
│   │ 控制外观 │     │    扩展功能          │  │
│   └─────────┘     └──────────────────────┘  │
│                                             │
│         ┌─────────────────────┐             │
│         │   主题功能 (functions.php)        │
│         │   可以添加一些基础功能             │
│         └─────────────────────┘             │
│                                             │
└─────────────────────────────────────────────┘

重要提示

  • 主题切换:停用主题会失去主题添加的自定义功能
  • 插件独立:插件可以在任何主题下工作
  • 长期项目:建议重要功能做成插件,避免主题锁定

基于 WordPress官方文档 构建