WordPress content management for CodeIgniter 4
- Install with Composer:
> composer require tatter/wordpress
- Add a new database connection:
public $wordpress = [
'DBDriver' => 'Tatter\WordPress\Database',
'WPConfig' => '/path/to/wp-config.php',
];
Tatter\WordPress provides a way for you to connect your CodeIgniter 4 instance to an existing WordPress installation.
This library comes with the Reader
class, a parser designed to read configuration values
from WordPress' wp-config.php file. By extracting database information and installation
path, Tatter\WordPress
can connect to the same database and modify information using the
supplied models.
In order to use the database you need to define a new database group that uses the
connection details provided by Reader
. Add a property to app/Config/Database.php
with the driver and the path to your wp-config.php file, like this:
class Database extends BaseConfig
{
public $wordpress = [
'DBDriver' => 'Tatter\WordPress\Database',
'WPConfig' => '/path/to/wp-config.php',
];
This library defines Models and Entities that correspond to WordPress's database tables.
You may use them like ordinary CodeIgniter 4 Models, but pay attention to WordPress's
particular database structure. "Meta"
tables are handled via a special Entity extension MetaHandler
, which allows read/write
access to individual meta rows as class properties:
// Get a particular Post
$post = model('Tatter\WordPress\Models\PostModel')->find($postId);
// Access post metadata
echo $post->meta->_wp_page_template; // 'default'
// Update post metadata
$post->meta->_wp_page_template = 'mobile';
There are a few commands to make it easier to interact with your configuration - these are also a great way to make sure your WordPress database is set up correctly.
posts:list
- Lists all Posts in a table formatposts:show [postId]
- Displays details for a single Postposts:delete [postId]...
- Deletes one or more Posts by their ID