
本文介绍如何基于wordpress rest api与python协同构建个性化文章推荐系统,利用用户画像、浏览历史及相似用户行为数据,实现精准内容推荐。
本文介绍如何基于wordpress rest api与python协同构建个性化文章推荐系统,利用用户画像、浏览历史及相似用户行为数据,实现精准内容推荐。
构建一个面向WordPress站点的个性化文章推荐系统完全可行,且技术路径清晰:核心在于解耦——将WordPress作为内容管理与API服务端,Python作为推荐算法与数据处理引擎,二者通过标准HTTP协议通信,无需直接调用PHP或修改WordPress内核。
一、WordPress端:启用并配置REST API
WordPress自4.7起已内置REST API,默认启用。确保以下基础配置到位:
- 后台 → 设置 → 阅读 → 勾选“对RSS和Atom Feed启用REST API”(非必需,但建议开启);
- 确保/wp-json/wp/v2/posts等端点可公开访问(如需权限控制,后续通过JWT或OAuth 2.0增强);
- 如需获取用户自定义字段(如job_type、interests),需注册自定义REST字段:
// functions.php 或插件中添加
function register_user_profile_fields() {
register_rest_field('user', 'job_type', [
'get_callback' => function($user) { return get_user_meta($user['id'], 'job_type', true); }
]);
register_rest_field('user', 'interests', [
'get_callback' => function($user) { return get_user_meta($user['id'], 'interests', true); }
]);
// 同理注册 age、gender 等字段
}
add_action('rest_api_init', 'register_user_profile_fields');
二、Python端:数据采集与推荐逻辑
使用requests库安全调用WordPress REST API,结构化获取多维数据:
Python 3.14.2是Python编程语言在2025年12月5日发布的稳定版本,属于3.14系列的第二个维护更新。该版本包含了18项修复,重点解决了多进程、数据类及正则表达式等模块的回归问题,并修复了CVE-2025-12084等安全漏洞。此版本标志着自由线程模式(移除GIL)正式获得官方支持,是Python发展的重要里程碑。
import requests
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# 1. 获取用户画像(需认证Token,示例使用Basic Auth或JWT)
user_id = 123
headers = {"Authorization": "Bearer YOUR_JWT_TOKEN"}
user_data = requests.get(f"https://yoursite.com/wp-json/wp/v2/users/{user_id}", headers=headers).json()
# 2. 获取该用户历史阅读记录(假设存在自定义post_meta如'read_by_user_123')
read_posts = requests.get(
"https://yoursite.com/wp-json/wp/v2/posts",
params={"meta_key": f"read_by_user_{user_id}", "meta_value": "1", "per_page": 50}
).json()
# 3. 获取高浏览/高评分文章(可结合自定义字段如'view_count'、'avg_rating')
popular_posts = requests.get(
"https://yoursite.com/wp-json/wp/v2/posts",
params={"orderby": "meta_value_num", "meta_key": "view_count", "order": "desc", "per_page": 20}
).json()
推荐算法可分层设计:
- 协同过滤:基于用户兴趣标签(interests)匹配相似用户,聚合其高评分文章;
- 内容相似度:对文章标题+正文提取TF-IDF特征,计算余弦相似度,推荐语义相近内容;
- 混合加权:融合用户画像权重(如年龄分段偏好)、行为强度(阅读时长 > 点击)、热度因子(view_count × rating),生成最终排序。
三、集成与部署建议
- 安全性:生产环境务必使用JWT或OAuth 2.0认证,避免暴露用户敏感字段;
- 性能优化:Python服务建议部署为独立Flask/FastAPI微服务,通过异步任务(Celery)定期更新推荐缓存,减少实时API压力;
- WordPress侧轻量集成:在主题或插件中通过AJAX调用Python服务接口(如/api/recommend?user_id=123),动态渲染推荐区块;
- 冷启动处理:新用户无历史行为时,降级为基于兴趣标签的热门内容推荐,或引导完成初始偏好设置。
该方案规避了PHP-Python进程间通信的复杂性,充分利用现代Web架构的松耦合优势,具备高扩展性与维护性。目前虽社区案例较少,但技术栈成熟、文档完备,是构建专业级内容推荐系统的稳健选择。










