tatter / wordpress
WordPress content management for CodeIgniter 4
Fund package maintenance!
tattersoftware
paypal.me/tatter
Requires
- php: >=7.2
Requires (Dev)
- codeigniter4/codeigniter4: dev-develop
- codeigniter4/codeigniter4-standard: ^1.0
- fakerphp/faker: ^1.10
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^8.5
- squizlabs/php_codesniffer: ^3.5
- wp-cli/wp-cli-bundle: ^2.4
This package is auto-updated.
Last update: 2024-12-22 05:39:51 UTC
README
WordPress content management for CodeIgniter 4
Quick Start
- Install with Composer:
> composer require tatter/wordpress
- Add a new database connection:
public $wordpress = [
'DBDriver' => 'Tatter\WordPress\Database',
'WPConfig' => '/path/to/wp-config.php',
];
Description
Tatter\WordPress provides a way for you to connect your CodeIgniter 4 instance to an existing WordPress installation.
Usage
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.
Database
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',
];
Models and Entities
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';
Commands
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