Skip to content

Wordpressed - WordPress ORM. A simple ActiveRecord implementation for working with WordPress. Built on top of Laravels Eloquent ORM.

License

Notifications You must be signed in to change notification settings

square1-io/wordpressed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WordPressed

Wordpressed - a simple ActiveRecord implementation for working with WordPress. Built on top of Laravels Eloquent ORM.

Have a look at the example usage to figure out how to use it!

Install

Via Composer

{
    "require": {
        "square1/wordpressed": "0.1.*"
    }
}

Example Usage

require 'vendor/autoload.php';

use \Square1\Wordpressed\Manager;
use \Square1\Wordpressed\Post;
use \Square1\Wordpressed\Page;
use \Square1\Wordpressed\Category;
use \Square1\Wordpressed\Tag;
use \Square1\Wordpressed\User;

//Connect to DB
$wp = new Manager([
    'host'      => '127.0.0.1',
    'database'  => 'your_db_name',
    'username'  => 'your_username',
    'password'  => 'some_secure_password',
]);

//Get Query Log
print_r($wp->getQueryLog());

//Get post by id
$post = Post::find(12345);
echo $post->post_name;

//Get post by id with meta
$posts = Post::with('meta')->find(1234);
foreach ($posts as $post) {
    echo $post->post_name;
}

//Get posts by ids
$posts = Post::id([12345, 54321])->get();
foreach ($posts as $post) {
    echo $post->post_name;
}

//Get post by slug
$posts = Post::slug('this-is-a-post-title')->get();
foreach ($posts as $post) {
    echo $post->post_name;
}

//Get posts by category slug
$posts = Post::category(['sport', 'rugby'])->get();
foreach ($posts as $post) {
    echo $post->post_name;
}

//Get posts by tag slug
$posts = Post::tag(['sport', 'rugby'])->get();
foreach ($posts as $post) {
    echo $post->post_name;
}

//Get posts by slugs
$posts = Post::slug(['this-is-a-post-title', 'another-post-title'])->get();
foreach ($posts as $post) {
    echo $post->post_name;
}

//Load all relationships
$post = Post::with('author', 'attachments', 'thumbnail', 'categories',
    'comments', 'tags')->find(12345);
print_r($post);

//Load a selection of posts
$posts = Post::status('publish')->skip(10)->take(10)->get();
print_r($posts->toArray());

//Get page by slug
$page = Page::slug('about')->first();
echo $page->post_name;

//Load all categories
$category = Category::get();
print_r($category->toArray());

//Load categories by slug name
$category = Category::slug(['sport', 'golf'])->get();
print_r($category->toArray());

//Load all tags
$tag = Tag::get();
print_r($tag->toArray());

//Load tags by slug name
$tag = Tag::slug(['sport', 'golf'])->get();
print_r($tag->toArray());

//Load user by id
$author = User::find(123);
print_r($author->toArray());

//Load user by name
$users = User::name(['john', 'mary'])->get();
print_r($users->toArray());

//Load posts by user
$posts = User::find(123)->posts()->status('publish')->first();
print_r($posts->toArray());

Testing

$ vendor/bin/phpunit --coverage-text
$ vendor/bin/phpcs --standard=psr2 src/

Contributing

Please see CONTRIBUTING for details.

License

The MIT License (MIT). Please see License File for more information.

About

Wordpressed - WordPress ORM. A simple ActiveRecord implementation for working with WordPress. Built on top of Laravels Eloquent ORM.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages