Laravel 与 WordPress 系列 —— 集成 Laravel 和 WordPress 的扩展包大全

wordpress-and-laravel-overlay

WordPress是世界上最流行的开源应用之一,据统计,全世界20%的网站基于WordPress开发,使用WordPress管理后台、发布文章、添加菜单、上传图片非常方便,因此有时候我们想要借助WordPress的后台来构建应用,但是前台我们想要有更多自定义空间,能够像Laravel一样进行各种灵活的开发,好消息是,Github上有很多针对Wordpress后台+Laravel前台的扩展包,下面我们来一睹为快吧:

WordPress Corcel

Corcel 使用 Laravel Eloquent 模型从 WordPress 数据库中直接获取内容,安装完成后,你可以通过如下Laravel风格代码来获取模型数据:

// All published posts
$posts = Post::published()->get();
$posts = Post::status('publish')->get();

// A specific post
$post = Post::find(31);

该扩展包支持文章、文章类型、标签、页面、分类和附件,但该扩展包还处于开发过程中,并未发布正式版本。

WordPressToLaravel

WordPressToLaravel 用于从WordPress.com同步博客数据,它被设计为通过 Laravel Scheduler 以调度任务的方式运行,自动下载并导入文章数据到本地数据库。

安装设置完成后,你需要负责编写与自己数据库相匹配的模型类,控制器和视图代码,使用WordPress.com的好处是它可以自动处理WordPress的升级,并使用CDN技术,可以通过网站、移动App和桌面App发布内容。

缺点是这个扩展包只能用于发布文章数据,不支持分类和标签。

WP Eloquent

WP Eloquent 是一个用于创建封装Wor的Press数据表模型的扩展包,包括Post、Comment、Post Meta、User以及User Meta模型类。安装完成后下面是使用示例:

use WeDevs\ORM\WP\Post as Post;
Post::type('page')->get()
Post::status('publish')->get()
Post::type('page')->status('publish')->get()

WP Eloquent还可以和Laravel DebugBar一起工作并且不会创建多余的数据库连接。

laravel-wp-api

laravel-wp-api 集成了 WordPress JSON REST API ,安装后可以通过别名WpApi来查询数据:

$post = WpApi::post($slug);
$catPosts = WpApi::category_posts($slug, $page);

其它集成WordPress和Laravel的方法

当然,集成WordPress和Laravel并不局限于以上这几个扩展包,下面是如何手动集成两者的一些文章和教程:

正如你所看到的,有很多种集成WordPress和Laravel的方法,这取决于你的需求和目标,不管怎样,总有一款适合你~

学院君

学院君 has written 548 articles

资深PHP工程师,Laravel学院院长