I had some spare time recently, and wrote a very light weight ORM plugin for WordPress, meant for developers. It lets you create models that are persisted to custom tables, and makes querying and saving these models very easy.
I wrote documentation for it, so I recommend you check it out on GitHub at brandonwamboldt/wp-orm.
Here’s a quick little example of how you can query WordPress pages using the built in Page model.
use WordPress\Orm\Model\Page; $pages = Page::query() ->limit(5) ->where('post_status', 'publish') ->sort_by('post_title') ->order('ASC') ->find();