我需要从Python 3查询WordPress网站,看看是否已存在具有特定日期和类别的自定义帖子类型的WordPress帖子。基于the docs for the the wp.GetPosts方法,这似乎是可能的,但我无法找到正确的查询。我目前使用的是:
import xmlrpc.client
wp_url = "http://www.mywebsite.com/xmlrpc.php"
server = xmlrpc.client.ServerProxy(wp_url)
filters = {
'post_date': start_time, # an RFC-3339 formatted date
'post_type' : 'my-custom-post-type',
}
fields = {
'terms' : {
'category': ['my-category']
}
}
post_id = server.wp.getPosts(wp_blogid, wp_username, wp_password, filters, fields)
(当然,wp_blogid,wp_username和wp_password都已正确定义)。
这返回的只是一个十个看似随意的正确自定义帖子类型帖子的列表,没有应用进一步的过滤器。我是否需要获取每个帖子然后根据我的条件迭代它们,或者是否有更简单的方法?
答案 0 :(得分:1)
没有选项按日期过滤帖子,抱歉。该文档具有误导性,因为它声称支持与#wp.getPost
相同的过滤器,但后者根本没有过滤; ;大概该部分将字段与过滤器混淆。
文档列出了参数列表中支持的 :
- struct
filter
:可选。
- string
post_type
- string
post_status
- int
number
- int
offset
- string
orderby
- string
order
Wordpress XML-RPC source code handling the filters证实了这一点。
因此,使用XML-RPC,您没有其他选择,只能翻阅结果以查找给定日期的匹配帖子。
您应该查看REST API,/wp-json/wp/v2/posts
route可让您按日期过滤帖子。