rubypressのgetPosts(というかwordpress_xmlrpc.methodsのGetPosts ) が、デフォルトでは10記事分までしか、記事データを取ってこない。
下記、参考
https://python-wordpress-xmlrpc.readthedocs.io/en/latest/examples/posts.html
# By default, wordpress_xmlrpc.methods.posts.GetPosts returns 10 posts in reverse-chronological order (based on their publish date).
上記を参考にして、上限無しで取得できるようにしてみた。
require 'rubypress' #Windowsで、文字化けしない用 Encoding.default_internal = 'UTF-8' STDERR.set_encoding( 'UTF-8',:undef => :replace,:invalid=>:replace ) wp_rubypress_client = Rubypress::Client.new( host: 'xxxxxxxxxxx.com', #WPのドメイン名(URLではダメ) username: 'user', # WordPress username password: 'pass' # WordPress password ) offset=0 increment = 200 posts = [] while true posts_tmp = wp_rubypress_client.getPosts( filter: {offset: offset ,number: increment }, fields: [:post_title, :post_content, :guid] # タイトル,本文,記事さえあれば良いという場合指定 ) break if posts_tmp.size == 0 posts += posts_tmp break if posts_tmp.size <= increment offset = offset + increment end posts.each do |post| #WPの投稿記事毎のお仕事 puts "guid= #{post['guid']}" puts "post_title= #{post['post_title']}" puts "post_content= #{post['post_content']}" end
コメント