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

コメント