Multisite support in models
Diff
src/Models/Meta.php | 16 ++++++++++++++++
src/Models/Option.php | 17 +++++++++++++++++
src/Models/Post.php | 17 +++++++++++++++++
src/Models/User.php | 1 +
4 files changed, 51 insertions(+)
@@ -26,6 +26,22 @@
public static $cache = [];
/**
* Create a new Eloquent model instance.
*
* @param array $attributes
* @return void
*/
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
// Set the current table to the site's own table if we're in a multisite
if (Wordpress::multisite() && (Wordpress::getSiteId() !== 0 && Wordpress::getSiteId() !== 1)) {
$this->setTable(DB_PREFIX . Wordpress::getSiteId() . '_postmeta');
}
}
/**
* Get metadata for a page (or the current page).
*
* <code>Meta::get('my_meta_key');</code>
@@ -1,7 +1,8 @@
<?php
namespace Koselig\Models;
use Illuminate\Database\Eloquent\Model;
use Koselig\Support\Wordpress;
/**
* Table containing all Wordpress options.
@@ -13,6 +14,22 @@
protected $primaryKey = 'option_id';
protected $table = DB_PREFIX . 'options';
public $timestamps = false;
/**
* Create a new Eloquent model instance.
*
* @param array $attributes
* @return void
*/
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
// Set the current table to the site's own table if we're in a multisite
if (Wordpress::multisite() && (Wordpress::getSiteId() !== 0 && Wordpress::getSiteId() !== 1)) {
$this->setTable(DB_PREFIX . Wordpress::getSiteId() . '_options');
}
}
/**
* Get an option by its name.
@@ -7,6 +7,7 @@
use Illuminate\Database\Eloquent\Relations\HasMany;
use Koselig\Exceptions\UnsatisfiedDependencyException;
use Koselig\Support\Action;
use Koselig\Support\Wordpress;
use WP_Post;
/**
@@ -20,6 +21,22 @@
protected $primaryKey = 'ID';
protected $dates = ['post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt'];
public $timestamps = false;
/**
* Create a new Eloquent model instance.
*
* @param array $attributes
* @return void
*/
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
// Set the current table to the site's own table if we're in a multisite
if (Wordpress::multisite() && (Wordpress::getSiteId() !== 0 && Wordpress::getSiteId() !== 1)) {
$this->setTable(DB_PREFIX . Wordpress::getSiteId() . '_posts');
}
}
/**
* The "booting" method of the model.
@@ -5,6 +5,7 @@
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Koselig\Support\Wordpress;
/**
* Table containing all the users within the CMS.