Ruby+rubypressでWordPress記事、本文、記事URLを全取得する

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
↓ 参考になるブログがたくさんあります!ぜひどうぞ! ↓
にほんブログ村 その他日記ブログ 日々のできごとへ

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください