dbout/wp-orm

WordPress ORM with Eloquent.


README

GitHub Release tests Packagist Downloads Eloquent version

WordPress ORM with Eloquent is a small library that adds a basic ORM into WordPress, which is easily extendable and includes models for core WordPress models such as posts, post metas, users, comments and more. The ORM is based on Eloquent ORM and uses the WordPress connection (wpdb class).

Tip

To simplify the integration of this library, we recommend using WordPress with one of the following tools: Bedrock, Themosis or Wordplate.

Features

  • ✅ Support core WordPress models: Comment, Option, Post, TermTaxonomy, Term, User, PostMeta and UserMeta
  • ✅ Support core WordPress post type: Article, Attachment and Page
  • ✅ Based on core WordPress database connection (wpdb class), no configuration required !
  • ✅ Custom functions to filter models with meta
  • ✅ Meta casting (e.g. Attribute Casting)
  • ❤️ Easy integration of a custom post and comment type
  • ❤️ Easy model creation for projects with custom tables
  • ❤️ All the features available in Eloquent, are usable with this library !

Not yet developed but planned in a future version:

Documentation

This documentation only covers the specific points of this library, if you want to know more about Eloquent, the easiest is to look at the documentation of Eloquent.

You can find all the documentation in the wiki.

Installation

Requirements

The server requirements are basically the same as for WordPress with the addition of a few ones :

Installation

You can use Composer. Follow the installation instructions if you do not already have composer installed.

composer require dbout/wp-orm

In your PHP script, make sure you include the autoloader:

require __DIR__ . '/vendor/autoload.php';

🎉 You have nothing more to do, you can use the library now! Not even need to configure database accesses because it's the wpdb connection that is used.

Contributing

We encourage you to contribute to this repository, so everyone can benefit from new features, bug fixes, and any other improvements. Have a look at our contributing guidelines to find out how to raise a pull request.