我需要从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都是正确定义的)。
这返回的只是一个十个看似随机的正确自定义帖子类型的帖子的列表,没有应用进一步的过滤器。我是否需要获取每个帖子然后根据我的条件迭代它们,还是有更简单的方法?
抱歉,没有选项按日期过滤帖子。该文档具有误导性,因为它声称支持与#wp.getPost
相同的过滤器,但后者根本没有过滤;大概该部分将字段与过滤器混淆。
文档列出了参数列表中支持的内容:
- struct
filter
:可选。 stringpost_type
stringpost_status
intnumber
intoffset
stringorderby
stringorder
Wordpress XML-RPC source code handling the filters证实了这一点。
因此,使用XML-RPC,您没有其他选择,只能翻阅结果以查找给定日期的匹配帖子。
你应该看看REST API,/wp-json/wp/v2/posts
route让你按日期过滤帖子。