PHPackages                             emneslab/wp-eloquent - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. emneslab/wp-eloquent

ActiveLibrary[Database &amp; ORM](/categories/database)

emneslab/wp-eloquent
====================

A WordPress Eloquent ORM integration

1.0.0(1y ago)0121[3 PRs](https://github.com/emneslab/wp-eloquent/pulls)MITPHP

Since Sep 5Pushed 1y ago1 watchersCompare

[ Source](https://github.com/emneslab/wp-eloquent)[ Packagist](https://packagist.org/packages/emneslab/wp-eloquent)[ RSS](/packages/emneslab-wp-eloquent/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (2)Used By (0)

Eloquent Wrapper for WordPress by Emneslab
==========================================

[](#eloquent-wrapper-for-wordpress-by-emneslab)

This library package allows you to use Laravel's [Eloquent ORM](https://laravel.com/docs/11.x/eloquent) seamlessly within WordPress, extending the capabilities of WordPress' native database handling.

Package Installation
--------------------

[](#package-installation)

To install this package, update your `composer.json` file as follows:

```
{
    "require": {
        "emneslab/wp-eloquent": "dev-main"
    }
}
```

Then run the command:

```
$ composer install
```

Usage Examples
--------------

[](#usage-examples)

### Basic Usage

[](#basic-usage)

```
$db = \Emneslab\ORM\Database\Connection::instance();

var_dump($db->table('users')->find(1));
var_dump($db->select('SELECT * FROM wp_users WHERE id = ?', [1]));
var_dump($db->table('users')->where('user_login', 'john')->first());

// OR with DB facade
use Emneslab\ORM\Support\Facades\DB;

var_dump(DB::table('users')->find(1));
var_dump(DB::select('SELECT * FROM wp_users WHERE id = ?', [1]));
var_dump(DB::table('users')->where('user_login', 'john')->first());
```

### Working with WordPress Models

[](#working-with-wordpress-models)

You can work with WordPress models just like Eloquent models:

```
use Emneslab\ORM\WP\Post;

// Fetch all posts
var_dump(Post::all());

// Filter by post type and status
var_dump(Post::type('page')->get()->toArray()); // Fetch all pages
var_dump(Post::status('publish')->get()->toArray()); // Fetch all published posts
var_dump(Post::type('page')->status('publish')->get()->toArray()); // Fetch all published pages
```

### Using Custom Tables

[](#using-custom-tables)

You can define models for custom WordPress tables, making use of Eloquent features:

```
