Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/stscoundrel/wp-post-crud

Provides class for handling CRUD operations on WP Posts
https://github.com/stscoundrel/wp-post-crud

composer-package crud wordpress

Last synced: 21 days ago
JSON representation

Provides class for handling CRUD operations on WP Posts

Awesome Lists containing this project

README

        

# WP Post Crud

Provides CRUD class for handling WP Post Types in Actice Recordish way. Includes classes for detault WordPress types Post/Page and is extendable to include custom post types.

Aim is to abstract away awkward parts of creating, handling and deleting Posts programmatically in WordPress.

## Installation

Via Composer:

`composer require silvanus/wp-post-crud`

To use autoloading mechanism, you must include `vendor/autoload.php` file in your code.

## Issues & Contributing

If you find a bug or feel something is wrong, submit an issue or a pull request. Read the instructions first.

## Usage

Post CRUD gives models that have create, read, update and delete methods. Main methods: `set_field()`, `get_field()`, `save()` and `delete()`

#### Creating new post

```php
set_field('post_title', 'Lorem ipsum dolor sit amet');
$model->set_field('post_content', 'Dolor sit igitur.');

// Persist the data in database.
$model->save();
```
All fields values should match WP Post table columns.

#### Edit existing post

Models will automatically load WP Post data if you instantiate them with ID.

```php
get_field('post_title');
echo $model->get_field('post_content');
echo $model->get_field('post_name');

// Not a fan of that slug, change it.
$model->set_field('post_name', 'sluggity_slug');

// Persist the changes.
$model->save();
```

#### Delete post

```php
delete();
}
```

### Custom Post Types

You can create your own classes for your own Custom Post Types. You only need to extend AbstractCrud class and provide name of post type.

```php
set_field('post_title', 'Revelation Space');
$book->set_field('post_status', 'published');

// Persist.
$book->save();
```

## Meta fields

Models can also handle metadata. Use `set_meta()` and `get_meta()` methods.

```php
set_meta('author', 'Alastair Reynolds');
$book->set_meta('rating', 5);

// Persist.
$book->save();
```
## Shorthand methods

There are shorthand getters & setters for the most common use cases. Instead of using `set_field($key, $value)` or `get_field($value)`, you can use the following:

```php
set_title('Lorem ipsum');
$model->set_content('Dolor sit igitur, dolor sit amet.');
$model->set_excerpt('Dolor sit igitur');

// Access values through shorthands
echo $model->get_title();
echo $model->get_excerpt();

// Persist.
$book->save();
```

Other shorthands are: `set_status($status)`, `get_status()`, `set_slug($slug)` and `get_slug()`.

Under the hood AbstractCrud class will call `set_field()` and `get_field()` methods.