You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过WP-CLI实现Wordfence等插件的自动化配置?

批量导入WordPress插件设置的解决方案

通用前提

先在一个模板站点上配置好所有插件的理想设置,导出这些配置后,通过wp-cli配合Shell脚本批量同步到其他20个站点即可。


1. Wordfence 设置同步

Wordfence的配置全部存在wp_options表中,前缀为wf_:

  • 导出模板站点设置:
    wp option list --search='wf_' --format=json > wordfence-settings.json
    
  • 批量导入到目标站点:
    在Shell脚本中遍历站点目录,执行以下命令:
    # 清空目标站点现有Wordfence配置(可选,避免冲突)
    wp option list --search='wf_' --format=csv | awk -F',' '{print $1}' | xargs wp option delete 2>/dev/null
    # 导入预存配置
    wp option patch insert --format=json < wordfence-settings.json
    # 优化配置生效
    wp wordfence optimize
    

2. LiteSpeed Cache 设置同步

LiteSpeed Cache的配置分两部分:wp_options表中前缀为litespeed_的选项,以及自定义表wp_litespeed_rules(存储缓存规则):

  • 导出模板站点设置:
    # 导出选项表配置
    wp option list --search='litespeed_' --format=json > litespeed-settings.json
    # 导出缓存规则表(如果有配置)
    wp db export --tables=wp_litespeed_rules litespeed-rules.sql
    
  • 批量导入到目标站点:
    # 清空现有LiteSpeed配置
    wp option list --search='litespeed_' --format=csv | awk -F',' '{print $1}' | xargs wp option delete 2>/dev/null
    # 导入选项配置
    wp option patch insert --format=json < litespeed-settings.json
    # 导入缓存规则(如果有)
    wp db import litespeed-rules.sql 2>/dev/null
    # 刷新缓存确保生效
    wp litespeed purge all
    

3. Woody Snippets 设置同步

Woody Snippets的配置包含两部分:wp_options表中的wbcr_php_snippets_settings全局选项,以及wp_posts表中类型为wbcr_php_snippet的自定义文章(对应每个代码片段):

  • 导出模板站点设置:
    # 导出全局设置
    wp option get wbcr_php_snippets_settings --format=json > woody-settings.json
    # 导出所有代码片段为XML
    wp export --post_type=wbcr_php_snippet --filename=woody-snippets.xml
    
  • 批量导入到目标站点:
    # 更新全局设置
    wp option set wbcr_php_snippets_settings "$(cat woody-settings.json)" --format=json
    # 导入代码片段
    wp import woody-snippets.xml --authors=skip --quiet
    # 刷新重写规则确保片段加载正常
    wp rewrite flush
    

整合进Shell脚本的示例

假设所有站点都存放在/var/www/sites/目录下,每个站点对应一个子目录:

#!/bin/bash

# 模板配置文件路径
WF_SETTINGS="/path/to/wordfence-settings.json"
LS_SETTINGS="/path/to/litespeed-settings.json"
LS_RULES="/path/to/litespeed-rules.sql"
WOODY_SETTINGS="/path/to/woody-settings.json"
WOODY_SNIPPETS="/path/to/woody-snippets.xml"

# 遍历所有站点
for site_dir in /var/www/sites/*; do
  cd "$site_dir"
  echo "Processing site: $(basename "$site_dir")"

  # 同步Wordfence
  wp option list --search='wf_' --format=csv | awk -F',' '{print $1}' | xargs wp option delete 2>/dev/null
  wp option patch insert --format=json < "$WF_SETTINGS"
  wp wordfence optimize

  # 同步LiteSpeed Cache
  wp option list --search='litespeed_' --format=csv | awk -F',' '{print $1}' | xargs wp option delete 2>/dev/null
  wp option patch insert --format=json < "$LS_SETTINGS"
  wp db import "$LS_RULES" 2>/dev/null
  wp litespeed purge all

  # 同步Woody Snippets
  wp option set wbcr_php_snippets_settings "$(cat "$WOODY_SETTINGS")" --format=json
  wp import "$WOODY_SNIPPETS" --authors=skip --quiet
  wp rewrite flush

  echo "Completed site: $(basename "$site_dir")"
  echo "-------------------------"
done

注意事项

  • 确保所有站点的wp-cli已正确配置,能正常连接数据库。
  • 操作前先在测试站点验证配置导入效果,避免破坏现有站点数据。
  • 若遇到部分配置导入后不生效,检查模板站点与目标站点的环境一致性(如域名、站点路径),必要时手动调整导出的JSON内容。

内容的提问来源于stack exchange,提问作者Finn Österreicher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 11:56:13