跳到主要内容
版本:Next

WordPress

WordPress 是一个 全球 42% 的网页基于 WordPress 构建,它被用于 企业建站 低代码/零代码 电子商务 市场营销 等场景。WordPress 是一个流行的开源建站平台,市场占有率极高。它以其易用性、易扩展性( 插件 、模板 、二次开发)、功能强大、美观、搜索引擎友好等特征而广泛流行。

登录界面

准备

在参阅本文档使用 WordPress 时,需要确保如下几点:

  • 应用是基于 Websoft9 安装的

  • 应用的用途符合 CERN-OHL-S 开源许可协议

  • 应用具备访问条件:配置域名服务器安全组开启网外端口

入门指南

初始化

Websoft9 控制台安装 WordPress 后,通过【我的应用】管理应用,在访问标签页中获取登录信息。

  1. 进入安装向导,选择语言(安装后也可以再设置)

  2. 设置您的管理员账号、密码和邮箱, 点击“安装WordPress”;

  3. 恭喜,成功安装

  4. 进入后台(http//域名或IP/wp-admin),试试 WordPress 的功能

商业主题下载

如果您安装了 Websoft9 提供的 WordPress 免费主题版,请通过下面地址下载:

插件管理

插件是WordPress功能的扩展,也是WordPress得以独步天下的“杀手锏”,其插件实现了名副其实的“即插即用”。全球有超过100万的WordPress插件,涵盖电商、表单、邮件、论坛、备份、美化、社交分享、轮播等领域。

寻找插件

寻找所需的插件,有三种方式:

  1. 通过WordPress后台-外观-安装插件,在线获取WordPress插件库的插件
  2. 通过百度、google等搜索“WordPress插件”,淘到自己喜欢的主题
  3. 通过插件交易市场购买功能强大的插件,例如:codecanyon.net
安装插件

安装插件一般有两种方式

  1. 通过WordPress后台-插件-安装插件,后台上传插件安装(推荐)
  2. 通过FTP工具,将主题文件上传到 WordPress 根目录下 /wp-content/plugin
Top20 插件

如下插件在使用 WordPress 中会经常用到:

名称类别用途付费 or 免费
WooCommerce电商将WordPress扩展成电子商务网站免费
WooCommerce Tab Manager电商电商页面Tab扩展免费
UpdraftPlus WordPress Backup Plugin备份自动备份WordPress免费
Visual Composer: Page Builder for WordPress排版与布局客户化编辑器收费
Slider Revolution Responsive WordPress Plugin排版与布局强大无比的轮播动画制作与管理收费
Ninja Forms – The Easy and Powerful Forms Builder表单表单插件免费
Duplicator – WordPress Migration Plugin系统管理网站整体打包工具,拥有备份与迁移免费
All-in-One WP Migration系统管理网站整体打包与恢复工具免费
download-monitor下载管理下载管理免费
File Manager文件管理在线文件管理工具免费
Yoast SEOSEOSEO优化建议和按页面设置免费
All in One SEOSEOSEO优化建议和按页面设置免费
Remove Google Fonts系统管理屏蔽google字体,提升速度免费
WP-Optimize系统管理系统优化和瘦身免费
WP Job Manager业务应用招聘、职位管理免费
WP Mail SMTP by WPForms业务应用SMTP邮件发送设置免费
weDocs – the documentation plugin业务应用在线文档工具免费
Smartideo业务应用优酷等视频插入免费
Essential Grid排版与布局文章、页面网格工具免费
Post Grid, List for WordPress – Content Views排版与布局文档、页面调用工具免费
Fat Rat Collect数据采集批量采集文章数据的开源插件,采集含括微信、简书、知乎、列表详情等免费

主题管理

WordPress 官方仅提供简单外观的背后有着数十万社区驱动的精美主题:

  1. 方式一:通过WordPress后台-外观-主题-添加,后台上传主题安装(推荐)
  2. 方式二:通过FTP工具,将主题文件上传到 /wp-content/theme 目录下

WooCommerce 支付配置

WooCommerce 是 WordPress 的一个电子商务插件,在 WordPress 上安装这个插件,就可以将你的 WordPress 改造成电商网站。据说 WooCommerce 已超过上亿次下载,市场占有率领先于同类软件。

WooCommerce 官方提供了 主题市场和插件市场 以扩展 WooCommerce 的功能。

WooCommerce 默认提供了国外主流的支付插件,下面重点介绍中国本地化支付的两个支付配置

支付宝即时到账支付
  1. 申请支付宝商家账户,申请开通即时到账;

  2. 在商城中安装支付宝支付插件(如果没有支付宝插件,请通过此处购买)

  3. 在商城中配置支付宝参数。配置界面如下:

微信扫描支付

WooCommerce微信支付插件使用非常简单,只需要如下步骤,就可以让你的WordPress商城添加微信支付功能。

  1. 安装微信支付插件(如果没有支付宝插件,请通过此处购买)

  2. 获取微信公众号APPID,密钥,微信支付密钥以及微信支付授权目录

    • 获取微信公众号的AppID(应用ID) 和AppSecret(应用密钥) AppID(应用ID) 和AppSecret(应用密钥)是微信公众号与第三方网站(wordpress)通信的授权ID和密码,非常重要,必须填写。 请登录微信公众平台(https://mp.weixin.qq.com),点击开发-配置获取:AppID 和AppSecret
    • 获取微信支付密钥登录微信支付商户平台(https://pay.weixin.qq.com),在账户设置-API安全中找到并设置密钥,密钥为32位,注意一下,获取密钥后保留备用
  3. 添加授权支付目录在微信公众平台(https://mp.weixin.qq.com)点击-微信支付-开发配置,设置授权支付目录 微信支付插件的授权支付目录为:<https://你的域名/wp-content/plugins/wechat-weixin-payments-for-woocommerce/>

  4. 设置回调域名在微信公众平台(https://mp.weixin.qq.com)-开发-接口权限中找到-网页服务-网页账号修改授权回调页面域名,域名为你的网站域名,注意区分www和不带www;

  5. 配置微信支付插件在woocommerce设置,支付设置中找到微信支付设置,填入微信公众号appid和微信支付密钥

配置 SMTP

  1. 准备好 SMTP 账号信息

  2. 登录 WordPress后台-设置-常规,设置好需要用于发件的邮件地址

  3. 安装SMTP插件:WP Mail SMTP by WPForms

  4. 后台-设置-Email,配置WP Mail SMTTP 插件的参数

  5. 填写参数后保存,然后最后输入一个收件地址用于测试是否可用

    • 如果测试成功,会看到”Your email was sent successfully!”
    • 如果邮件配置不可用,则会显示“There was a problem while sending the test email.”

  6. SMTP 配置成功后,所有的 WordPress 后台邮件发送就会使用这个配置

增加备案号

如果你使用的WordPress默认自带主题,需要在页面底部增加ICP备案以及链接。具体操作步骤如下:

  1. 登录WordPress后台,依次打开【外观】>【小工具】

  2. 从左侧的【可用小工具】中拖拽一个【文本】小工具到右侧的【页脚1】

  3. 填写好备案号相关信息,增加链接,并分别点击【回车符】按钮和【保存】按钮

  4. 刷新网页看效果

改管理员邮箱

如果已经配置 SMTP,则可以直接在后台更改邮箱。 否则,需要修改数据库 wp_option 表中的邮箱信息。

后台如何使用 SSL

在 wp-config.php 文件中的特定位置,添加如下两行代码

### 添加代码开始 ###
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
### 添加代码结束 ###

if ( !defined(‘ABSPATH’) )
define(‘ABSPATH’, dirname(__FILE__) . ‘/’)

换回 Classic Editor 经典编辑器

Wordpress5.0 之后的版本,编辑器与之前有了明显的区别。

如果用户的主题无法适应新的编辑器,导致做不到可视化编辑。如果您希望主题可以可视化编辑,您必须启用经典编辑器。启用的方法非常简单,安装“Classic Editor”这个插件即可

WordPress 集成 MinIO

WordPress 集成 MinIO 搭建高性能存储方网站,集成的关键过程如下:

  1. 登录 WordPress 安装并启用 Media Cloud 插件

  2. 登录 MinIO,通过 【Access Keys】 -【Create access key】生成访问秘钥对,并下载秘钥对保存本地

  3. 登录 WordPress 通过配置 Media Cloud 插件,实现与 MinIO 连通,并在媒体中测试上传文件,此时的文件已经保存在 MinIO 中

配置信息参考上个步骤的秘钥文件

WordPress 集成 Matomo

WordPress 集成Matomo 轻松实现网站统计优化,集成的关键过程如下:

  1. WordPress 启用 WP-Matomo(WP-Piwik) 插件
  2. 在WP-Matomo (WP-Piwik) 设置菜单按照说明配置您的 Matomo 连接即可

配置选项

如下的各种说明可能在使用时会需要:

  • 配置文件:wp-config.php
  • 数据文件夹:wp-contents
  • www-data 用户的 UID

管理维护

禁用 WordPress目录浏览

禁用目录浏览可以降低 WordPress 文件信息泄露,提高站点的安全性。未禁用之前如下图:

在 WordPress 根目录下的 .htaccess 文件末尾添加代码: Options -Indexes ,禁止目录访问。如下图:

修改上传文件类型

WordPress 默认支持大部分图片等文件格式的上传,但也有一些文件格式是不支持的,根据实际需要,可以增加或禁止一些格式的文件上传。设置方法如下:

把以下代码加到主题目录(/wp-content/themes/twentysixteen)下的 functions.php 文件中:

   function edit_upload_types($existing_mimes = array()) {
// 允许上传的文件类型
$existing_mimes['woff'] = 'application/woff';
$existing_mimes['rar'] = 'application/rar';

// 如需添加更多文件类型支持,在其后增加代码即可

// 不允许上传的的文件类型
unset( $existing_mimes['jpg'] );

return $existing_mimes;
}
add_filter('upload_mimes', 'edit_upload_types');

以上是以自带主题 twentysixteen 为例,如果您使用的不是这款主题,则需要到对应主题目录下的 functions.php 文件中添加。

修改密码

  1. 以管理员账号登录后台
  2. 依次打开:【用户】>【所有用户】,编辑需要修改密码的账号
  3. 往下拉倒【账号管理】项,点击【生成密码】,然后修改密码,并更新个人资料 Wordpress 修改密码

找回密码

若不记得 WordPress 管理员密码,可以通过如下两个方式找回

方案一:通过邮件找回密码

WordPress可以通过发送邮件找回密码,但前提条件是您的 WordPress 网站已经配置好SMTP Wordpress 修改密码

方案二:修改数据库中的密码字段

如果不能发邮件,请登录数据库管理面板 phpMyAdmin 进行修改

  1. 登录 phpMyAdmin,并找到你的网站数据库下的 wp_userWordpress 修改密码
  2. 编辑管理员用户(下图以用户名 admin为例)
    Wordpress 修改密码
  3. 截图的地方数据库密码(MD5加密后的密文),用21232f297a57a5a743894a0e4a801fc3替换之
  4. 点击【执行】
  5. 新的密码为admin

更换域名 URL

更换域名,需重置 WordPress URL:

  1. 登录 WordPress 后台,依次打开:【设置】>【常规】,将网站路径和安装路径设置为新的域名 Wordpress 修改URL

  2. 保存后生效

如果更换域名后,网站中有一部分图片地址还是原来的域名,此时需要手工逐一修正 如果在第2步操作完成后,无法进入第3步访问后台操作,请访问 Wordpress 数据库,将 option 表中的 home 和 siteurl 两个属性修改为【新的域名】 通过 Websoft9 已经配置好的 MySQL 可视化工具 phpMyAdmin (<http://ip/phpmyadmin><http://ip:9090> )进行快捷操作

命令行使用

下面通过具体示例展示 wp-cli 的用法:

  1. 验证 wp-cli 是否安装成功
$ docker exec -it wordpress bash
$ wp --info
OS: Linux 3.10.0-1160.25.1.el7.x86_64 #1 SMP Wed Apr 28 21:49:45 UTC 2021 x86_64
Shell:
PHP binary: /usr/local/bin/php
PHP version: 8.0.26
php.ini used:
MySQL binary:
MySQL version:
SQL modes:
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /var/www/html
WP-CLI packages dir:
WP-CLI cache dir: /root/.wp-cli/cache
WP-CLI global config:
WP-CLI project config:.
  1. 如果您尚未完成初始化向导,也可通过 wp-cli 创建新的站点(如已完成初始化向导,可直接使用 wp-cli )
$wp core install --url=http://yourIP --title="WP-CLI" --admin_user=youradmin --admin_password=yourpassword --admin_email=your_email
Success: WordPress installed successfully.
  1. 通过 wp-cli 安装插件
$ wp plugin install akismet
Warning: akismet: Plugin already installed.
Success: Plugin already installed.

API 使用

WordPress 初始化完成之后,无需任何设置即可调用 REST API 查看网站相关数据:

curl -X OPTIONS -i http://yourdomain.com/wp-json/
curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts
curl -X GET -i http://yourdomain.com/wp-json/wp/v2/pages

WordPress 维护 10 大原则

为了使 WordPress 运行更有效率,方便维护、方便迁移,我们在实践中总结了需要注意的 10 个要点:

  1. 上传图片尽量不超过100k/张
  2. 如果总图片数量超过500张,建议将图片放到对象存储中,实现动静分离,也便于维护
  3. 所有图片名称为英文
  4. 新闻的图片大小比例最好为600:400,保证统一性。每篇新闻都要配套图片,美观大方,便于展示
  5. 所有页面、新闻 URL 地址均采用英文
  6. 后台账号的密码要复杂一些
  7. 轮播 Banner 不超过3张
  8. 插件数量不超过20个,不用的插件务必卸载,以避免插件冲突而导致网站不可用
  9. 网站内容为王,请将精力集中于内容的更新、知识库的建立
  10. 视频等大文件请放到其他存储中

WordPress 使用外部图片

当 WordPress 的图片超过 500 张的时候,建议将图片存放到外部对象存储中(OSS),实现图片与主程序分离,加速网站访问。

  1. 通过OSS的客户端工具,上传图片到对象存储

  2. 获取对象存储中图片的地址

  3. 登录Wordpress后台,依次打开:页面编辑-插入多媒体,将图片插入到WordPress系统中

WordPress 多站点

WordPress 支持一台服务器,一次安装,一个数据库,部署多个网站,多个网站共享主题、插件,站点单独操作,方便构建和管理站群系统。

  1. 初始化 WordPress ,新建默认网站 MainSite

  2. 启用 WordPress 多站点

    • 使用 SSH 工具连接服务器,修改 MainSite 配置文件 wp-config.php,添加配置项:
    define( 'WP_ALLOW_MULTISITE', true );
    /* That's all, stop editing! Happy blogging. */
    • 配置网络: 登录 WordPress 后台,通过【工具】-【站点网络配置】,点击【安装】,启用多站点网络功能

    如需用域名访问,建议在主站安装时就设置好域名访问 通过子域名访问网站,需要在域名解析时添加 * 通配符,如 *.websoft9.com

  3. 修改配置,使 WordPress 支持多站点:将系统生成的配置信息分别插入到 wp-config.php 文件,及替换 .htaccess文件

  4. 新建网站 web1 :【我的站点】-【管理网站】-【站点】-【添加新站点】,设置网站URL、标题、语言等。

  5. 多站点管理:重新登录后台,通过【我的站点】-【管理网站】,可以进行查看仪表盘、多网站管理、主题及插件维护等操作

WordPress 集成对象存储

所谓 WordPress 与 对象存储集成实际上就是:将对象存储挂载到 WordPress 的 wp-upload 文件夹上。

挂载 OSS 的操作并不简单,下面OSS Upload 插件 为例说明挂载的方法:

  1. 准备对象存储集成所需的:Bucket,读写权限、URL、Access KeySecret Key

  2. WordPress后台,安装 OSS Upload 插件并启用

    OSS

  3. 对 OSS Upload 插件进行配置,关联将要连接的对象存储 OSS

  4. 设置资源本地备份与同步 OSS

备份与恢复

WordPress插件库中有数量众多的备份插件,我们推荐使用:UpdraftPlus WordPress Backup Plugin

这个插件特点和好处包括:

  • 可以预设备份时间点,实现自动备份
  • 可以备份网站文件和数据库
  • 可以实现一键恢复

虚拟机部署迁移至 Docker 部署

将传统的虚拟机部署的 WordPress 迁移至 Docker 部署是必要的,也是可行的。

我们在实践中,发现需要注意的问题:

  1. 将 /var/www/html 挂载到已有的 WordPress 根目录,并将其目录的 owner 更改为容器中 www-data 用户的 UID,这样便可以避免诸多权限问题。
  2. 需匹配 WordPress 容器镜像版本,以适应原网站
  3. 关注 wp-config.php 在 Docker 版与原有网站之间的差异,必要的时候做出修正

权限问题可能导致网站无法访问或插件无法在线安装的问题

计划任务

WordPress 内置计划功能(wp cron),并默认启动了插件更新检查、主题检查等十多个任务。wp cron 不依赖操作系统的计划任务而独立运行。

如果用户希望增加自己的计划任务,具体的步骤如下:

  1. 安装并启用 WP Crontrol 插件
  2. 打开:【工具】>【Cron Event】,新增一个 Cron,选择 PHP code
    fopen("websoft9.txt", "w");
  3. 测试这个 Cron,会发现 WP 根目录新增了 websoft9.txt 这个文件

代码植入处理

WordPress 由于被广泛使用,导致安全漏洞被无限放大,其中WordPress网站被植入第三方代码是最常见的安全故障。

  • 源码中植入非常明显的代码
  • 源码中植入难以察觉的代码
  • 数据库中被植入

经过实践,下面介绍一种简单有效的处理办法

  1. 通过在线安全检查网站sitecheck.sucuri.net进行排查,初步定义被植入的内容
  2. 登录WordPress后台,安装安全插件Wordfence Scan Enabled
  3. 运行Wordfence Scan Enabled,启动网站健康检查
  4. 对于“Critical”标记的结果,手工一一处理

其他扫描工具:

  1. Quttera Web Malware Scanner
  2. Anti-Malware Security and Brute-Force Firewall

升级

升级之前必须备份,这个是基本素养。

WordPress 升级包括:内核升级、插件升级和主题升级。这三者都可以通过 WordPress 后台进行在线升级,下图是升级提醒:

由于这三者分别属于不同的开发者,升级后可能会导致不兼容的现象。具体表现有:

  • 网站打不开,显示500程序错误
  • 网站结构变得混乱
  • 主题部分功能不可用

以上不兼容现象是正常的,最好的解决办法是让 主题和插件的版本 适应 WordPress 内核版本。

内核升级

一键升级

WordPress 内核升级非常简单,当进入后台之后系统会提示需要升级,点击升级即可。

手动升级

有的时候,由于网络原因,在线一键升级不可用,那么就需要手工升级

  1. 下载最新的 WordPress 版本,并解压
  2. 登录云服务器,进入 WordPress 的根目录
  3. 删除此目录下的 wp-adminwp-includes 文件夹
  4. 上传本地解压后的 WordPress代码,有同名文件提醒的时候选择覆盖上传
  5. 重新访问WordPress,可能会出现下图所示的数据库升级步骤
  6. 点击【升级WordPress数据库】即可

插件升级

插件一般采用在线升级的方式,并逐一升级

WordPress 插件升级

主题升级

主题升级建议采用的方式:

  1. 使用 WinSCP 登录服务,删除原有主题(或对其改名)
  2. 通过 【WordPress 后台】>【外观】>【主题】>【添加】>【上传主题】的方式,完成主题安装 Wordpress 上传主题

故障

WordPress 升级后,页面编辑乱码了?

问题原因: Wordpress升级到5.0版本之后,WordPress 官方提供的默认编辑器发生了本质的变化,导致已有主题无法适应新的 WordPress 编辑器内核

解决方案:安装一个名称为“Classic Editor”的插件,继续使用旧的编辑器内核

配置HTTPS后,网站部分资源无法加载?

在完成 https 的配置后,可能会出现网站无法加载 css 等静态文件,特别是是对于经过二次开发过的 WordPress 会更为常见。

问题原因及对策

  1. 特殊插件导致? 某些插件自带 HTTPS 开关,需要根据实际情况开启或关闭。

  2. 开了 CDN 服务? 编辑 WordPress 根目录下的 wp-config.php 文件,增加如下代码

       define('FORCE_SSL_ADMIN', true);
    define('FORCE_SSL_LOGIN', true);
    $_SERVER['HTTPS'] = 'ON';
    define( 'CONCATENATE_SCRIPTS', false );

HTTPS 访问 “....并非完全安全”?

原因是由于 WordPress 网页中含有一部分 HTTP 开头的图片等静态链接资源,需要手工逐一修改

出现病毒导致乱码?

由于被广泛使用,导致 WordPress 安全漏洞被无限放大,其中WordPress网站被植入第三方代码是最常见的安全故障。

频繁出现数据库连接错误?

诊断原因:可能性最大的原因是内存不足导致 WordPress 数据库运行异常
解决方案:增加内存+启用CDN

CDN可以在给网站加速的同时,大大降低服务器内存的开销

上传图片出错?

WordPress上传文件出错,有几种可能性:

  1. 图片大小超过服务器限定的要求
    解决方案:请参考本章环境管理->PHP配置中的修改上传文件大小

  2. 图片实际的格式与后缀不一致。
    解决方案:例如一个 WordPress9.jpg的图片的真实格式是Wordpress9.jpeg,上传的时候会报错,如果把后缀改为jpeg,上传正常。实际上,真实格式与后缀不一致的时候,在Windows系统的文件中也不会有预览效果

  3. 权限问题(IIS中比较常见)

正在执行例行维护请一分钟后回来?

出现这个提示的原因是在网站Wordpress安装目录下生成了.maintenance文件

  • 如果存在将其删除即可,恢复正常.
  • 如果不存在,那么新建一个.maintenance,内容为空白,刷新,恢复正常后再删除它

不能发送邮件?

WordPress 默认是通过mail()函数发送邮件,必须要求服务器本身配置好了邮件功能。

实际中,将服务器改造成邮件服务器,是一件非常复杂的工作,且难以维护。因此,建议安装一个SMTP插件来解决发送邮件问题:WP-Mail-SMTP

网络不通导致无法升级?

WordPress 升级包地址也是国外的。有时候由于网络原因,升级地址不可用。如果您迫切需要升级,请参考:WordPress手工升级文档

管理员失去权限,无法正常登录后台?

WordPress 的后台管理是分权限的,而最高权限是超级管理员。当wordpress管理员因失去权限无法正常进入后台,可以通过进入PhpMyAdmin数据库管理工具,来进行权限恢复:

  • 登录数据库管理工具phpMyAdmin: http:// 服务器ip/phpMyAdmin/
  • 找到跟用户相关的数据表:wp_users和wp_usermeta;
  • 先进入wp_users,查看自己的管理员用户名,超级管理员用户id一般都是1,不是就修改;
  • 再进入wp_usermeta表,找到wp_user_level,wp_capabilities字段。如果对应账号wp_user_level的值不是10 ,请修改为10(超级管理员一半都是10,最高权 限);查看wp_capabilities值,如果里面不是 “administrator”,可以直接改成:a:1:{s:13:"administrator";b:1;}
  • 重新登录。

Wordpress 导入演示数据没权限?

错误信息: You don't have permission to access /wp-admin/admin.php on this server?
解决方案:待研究

数据库连接和用户权限 100% 正确,而 WordPress 容器仍然连不上数据库?

错误信息: Database connection error
问题原因:容器版 WordPress 不支持 www.abc.com 这个格式的数据库名称
解决方案:修改数据库名称为 www_abc_com

Cannot modify header information - headers already sent by...?

错误信息: "Warning: Cannot modify header information - headers already sent by (output started at /home/user/public_html/index.php:581) in /home/user/public_html/system/sessions.php on line 180"
问题原因: 未知 解决方案: 检查有<?php ... ?> 后面没有空白行,特别