欢迎光临 WordPress 智库!

帮助我们在 WordPress 使用 Eloquent ORM 的插件 wp-eloquent

帮助我们在 WordPress 使用 Eloquent ORM 的插件 wp-eloquent

帮助我们在 WordPress 使用 Eloquent ORM 的插件 wp-eloquent

Eloquent 是 Laravel 的 ORM 组件,可以帮助我们非常方便的管理 WordPress 数据库,存取数据到数据表中,Eloquent 是 Laravel 是一个松耦合的实现,也就是说,我们可以把 Eloquent 用到第三方系统中,今天就为大家介绍一个可以帮助我们在 WordPress 使用 Eloquent 的 PHP 包。

首先,通过 Composer 安装 Eloquent ORM 包

编辑你主题的 composer.json 文件,加入以下内容。

{
    "require": {
        "tareq1988/wp-eloquent": "dev-master"
    }
}

然后运行:

$ composer install

如果你已经使用 Composer 来管理你的主题了,直接以下代码:

$ composer require tareq1988/wp-eloquent

使用示例

引入 wp-eloquent 包

在需要使用 Eloquent 的文件或者 WordPress 主题的functions.php 文件中直接引入 Composer 生成的自动加载文件即可在 WordPress 中使用 Eloquent 包。

require_once( dirname( __FILE__ ) . '/../vendor/autoload.php' );

基本使用方法

$db = \WeDevs\ORM\Eloquent\Database::instance();

var_dump( $db->table('users')->find(1) );
var_dump( $db->select('SELECT * FROM wp_users WHERE id = ?', [1]) );
var_dump( $db->table('users')->where('user_login', 'john')->first() );

获取一个数据表中的所有行

$users = $db->table('users')->get();

foreach ($users as $user) {
    var_dump($user->display_name);
}

注意,users 就是 WordPress 数据库的中 wp_users 数据表,在这里使用的时候,不用加 wp 前缀,wp-eloquent 会自动为我们添加。

新建一个模型

use \WeDevs\ORM\Eloquent\Model as Model;

class Employee extends Model {

}

var_dump( Employee::all()->toArray() ); // 获取所有雇员
var_dump( Employee::find(1) ); // 获取 ID 为1 的雇员

类型 Employee 将被翻译未 PREFIX_employees 数据表然后运行查询,同时,如有需要,我们也可以修改数据表名称。

内置的 WordPress 模型

  • Post
  • Comment
  • Post Meta
  • User
  • User Meta
use WeDevs\ORM\WP\Post as Post;

var_dump( Post::all() ); // 只返回文章类型为 "post" 的文章

根据文章状态和文章类型过滤查询

use WeDevs\ORM\WP\Post as Post;
var_dump(Post::type('page')->get()->toArray()); // 获取页面
var_dump(Post::status('publish')->get()->toArray()); // 获取已发布的文章
var_dump(Post::type('page')->status('publish')->get()->toArray()); // 获取已发布的页面

工作原理

  • Eloquent 在这里主要作为一个查询构建器使用
  • Eloquent 使用 WPDB 进行数据库查询
  • 因此,我们可以使用 debug-bar 或 query-monitor 来获取 SQL 查询报价
  • WP Eloquent 不会增加额外的数据库链接和查询

最小需求

  • PHP 5.3.0
  • WordPress 3.6+

本站提供 WordPress 主题定制开发服务

本站长期承接 WordPress 主题、插件、基于 WooCommerce 的商店商城开发业务。 我们有 8 年 WordPress 开发经验,如果你想 用 WordPress 开发网站, 请联系 QQ: 470266798,或邮箱: 4626395@gmail.com 咨询。

2 thoughts on “帮助我们在 WordPress 使用 Eloquent ORM 的插件 wp-eloquent

  1. 太棒了!RoR 有 ActiveRecord,Laravel 有 Eloquent ORM,一直在想 WordPress 那个难用的 wpdb 什么时候才能替换掉……感谢刀哥!
    =w=顺便转载了很多好文章:https://wplog.org/topics/16

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*