使用WordPress搭建多语言商城
1. Docker环境配置
首先创建docker-compose.yml
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| version: '3.8'
services: wordpress: image: wordpress:latest restart: always ports: - "8000:80" environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: narouser WORDPRESS_DB_PASSWORD: naro123!@# WORDPRESS_DB_NAME: multilinguashop WORDPRESS_CONFIG_EXTRA: | define('WP_MEMORY_LIMIT', '256M'); define('WP_MAX_MEMORY_LIMIT', '512M'); define('WP_REDIS_HOST', 'redis'); volumes: - wordpress:/var/www/html - ./wp-content/plugins:/var/www/html/wp-content/plugins - ./wp-content/themes:/var/www/html/wp-content/themes - ./wp-cli.yml:/var/www/html/wp-cli.yml depends_on: - db - redis healthcheck: test: ["CMD", "curl", "-f", "http://localhost"] interval: 30s timeout: 10s retries: 3 command: bash -c 'curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && chmod +x wp-cli.phar && mv wp-cli.phar /usr/local/bin/wp && apache2-foreground'
db: image: mysql:5.7 restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress_password volumes: - db:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 30s timeout: 10s retries: 3
redis: image: redis:latest restart: always ports: - "6380:6379" volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 10s retries: 3
phpmyadmin: image: phpmyadmin/phpmyadmin restart: always ports: - "7080:80" environment: PMA_HOST: db MYSQL_ROOT_PASSWORD: somewordpress depends_on: - db
volumes: wordpress: db: redis_data:
networks: default: driver: bridge
|
2. 启动环境
1 2
| mkdir -p wp-content/{plugins,themes} docker-compose up -d
|
3. 安装必要插件
访问 http://localhost:8000 完成WordPress初始安装后,安装以下插件:
- WooCommerce
- Polylang
- Polylang for WooCommerce
- WP Social Login with LINE (或 NextEnd Social Login)
插件配置命令
1 2 3 4 5 6 7 8 9
| docker-compose exec wordpress wp plugin install woocommerce --activate --allow-root docker-compose exec wordpress wp plugin install polylang --activate --allow-root
docker-compose exec wordpress wp plugin install polylang --activate --allow-root
docker cp polylang-wc.zip multilinguashop-wordpress-1:/tmp/ docker-compose exec wordpress wp plugin install /tmp/polylang-wc.zip --activate --allow-root
|
4. LINE Login配置
在 LINE Developers Console 创建新的Provider和Channel
获取以下信息:
- Channel ID
- Channel Secret
- Callback URL:
http://你的域名/wp-login.php?action=line-oauth
在WordPress后台找到”WP Social Login with LINE(免费但高级功能收费)”(或 NextEnd Social Login)设置:
- 填入Channel ID和Channel Secret
- 设置登录按钮样式
- 配置用户角色映射
5. Polylang语言配置
- 进入WordPress后台 -> Languages
- 添加需要的语言(如:英语、日语、中文)
- 设置默认语言
- 配置语言切换菜单
6. WooCommerce多语言设置
1 2 3 4 5 6 7 8 9 10
| add_filter('woocommerce_product_data_store_cpt_get_products_query', function($query, $query_vars) { if (isset($query_vars['lang'])) { $query['meta_query'][] = array( 'key' => '_locale', 'value' => $query_vars['lang'], 'compare' => '=' ); } return $query; }, 10, 2);
|
7. 商品翻译流程
- 创建新商品
- 点击语言标签添加翻译
- 翻译以下内容:
- 商品标题
- 商品描述
- 短描述
- SEO信息
- 属性名称
- 分类名称
8. LINE消息集成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| function send_line_notification($order_id) { $order = wc_get_order($order_id); $line_bot_channel_access_token = 'YOUR_ACCESS_TOKEN'; $message = sprintf( "新订单 #%s\n总额: %s\n客户: %s", $order->get_order_number(), $order->get_total(), $order->get_billing_first_name() ); $headers = array( 'Content-Type: application/json', 'Authorization: Bearer ' . $line_bot_channel_access_token ); $body = json_encode(array( 'to' => 'USER_ID', 'messages' => array( array( 'type' => 'text', 'text' => $message ) ) )); wp_remote_post('https://api.line.me/v2/bot/message/push', array( 'headers' => $headers, 'body' => $body )); }
add_action('woocommerce_new_order', 'send_line_notification');
|
9. 性能优化
安装缓存插件:
1
| docker-compose exec wordpress wp plugin install wp-super-cache --activate
|
配置Redis缓存(可选):
1 2 3 4
| # 在services下添加: redis: image: redis:alpine restart: always
|
- 添加CDN支持(推荐Cloudflare)
注意事项
- 确保所有插件都保持最新
- 定期备份数据库和文件
- 使用SSL证书保护网站
- 设置适当的文件权限
- 配置定期自动更新
常见问题排查
- 语言切换404:重新保存固定链接设置
- LINE登录失败:检查回调URL配置
- 商品翻译不显示:检查Polylang与WooCommerce兼容性
- 性能问题:启用缓存,优化图片
这个教程涵盖了从环境搭建到具体功能实现的所有关键步骤。你可以根据实际需求调整配置参数。
需要注意的是,LINE Login的Channel ID和Secret需要从LINE开发者控制台获取,并且要确保回调URL配置正确。
对于生产环境,建议:
1. 使用nginx反向代理
2. 配置SSL证书
3. 设置适当的缓存策略
4. 实现自动备份方案