在Python 3中使用XML-RPC,如何按日期和类别查看WordPress帖子是否存在?

时间:2018-01-02 21:51:41

标签: python wordpress xml-rpc

我需要从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都已正确定义)。

这返回的只是一个十个看似随意的正确自定义帖子类型帖子的列表,没有应用进一步的过滤器。我是否需要获取每个帖子然后根据我的条件迭代它们,或者是否有更简单的方法?

1 个答案:

答案 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可让您按日期过滤帖子。