Eloquent 是 Laravel 的 ORM 组件,可以帮助我们非常方便的管理 WordPress 数据库,存取数据到数据表中,Eloquent 是 Laravel 是一个松耦合的实现,也就是说,我们可以把 Eloquent 用到第三方系统中,今天就为大家介绍一个可以帮助我们在 WordPress 使用 Eloquent 的 PHP 包。
GitHub 地址:https://github.com/tareq1988/wp-eloquent
编辑你主题的 composer.json 文件,加入以下内容。
{ "require": { "tareq1988/wp-eloquent": "dev-master" } }
然后运行:
$ composer install
在需要使用 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-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数据表然后运行查询,同时,如有需要,我们也可以修改数据表名称。
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()); // 获取已发布的页面
@Via:WordPress 智库