你想过可以在 WordPress 中使用 Laravel 或者任意一种 PHP 框架吗? Corcel 可以帮你实现!

开发网站应用就应该是快捷并有趣的。当然了,每个应用都会有它自己的需求和生命周期。

WordPress 是基于 PHP 编写的功能强大的 CMS,你可以使用它非常快的创建你的产品。然而,它并没有遵循最近 PHP 的变化和约定,但是你可以将它与其他类似 Laravel 这样的框架一起使用来平衡这一点。

Corcel

我认为 WordPress 的后台管理面板很棒。它有一堆插件,可以让你快速地生成字段,文章类型,图片,作物等等。这真的很棒!

这就是为什么有了 Corcel ,它可以轻松让你从 WordPress 数据库中获取数据。你只需要使用 Composer 在你的 PHP 应用程序框架( Laravel 或其他框架)中安装 WordPress 和 Corcel 就可以了。

当然我们也可以在 WordPress 中使用 MVC !

你可以为你的 WordPress 搭建控制器、模型和视图。Corcel 为你创建了一个模型集合来检索文章、页面和菜单等,甚至还可以连接不同的数据库,一个用于 Laravel ,另一个用于 WordPress 。

<?php // File: /config/database.php
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'app',
'username' => 'admin'
'password' => 'secret',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
'wordpress' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'corcel',
'username' => 'admin',
'password' => 'secret',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'wp_',
'strict' => false,
'engine' => null,
], ],

下面开始从 WordPress 数据库中获取你所需要的东西:

<?php // File: /app/Http/Controllers/AnyController.php
// ...
public function index()
{
$posts = Post::published()->take(10)->get();
$page = Page::where('post_name', 'about')->first();
return view('posts.index', compact('posts', 'page'));
}
// ...

文章类型与自定义字段

不知道你是否使用过高级自定义字段功能( ACF )?在这里你也可以得到所有的自定义字段:

<?php
$post = Post::find(1);
$avatar = $post->meta->avatar;
$phone = $post->meta->phone;

你可以创建与自定义文章类型相关的自定义模型:


<?php
use Corcel\Post as Corcel;
class Service extends Corcel
{
protected $postType = 'service';
}

关于更多的功能,你可以直接在 GitHub 仓库中查看。

你可以在任何 PHP 框架中使用 Corcel,甚至是像 Slim,Silex 这样的微型框架。它可以让你获得所有 WordPress 管理面板数据,并可以让你使用自定义路由、控制器、模型和视图来组织你的项目。

来给 Corcel 一个机会吧,也欢迎大家给一些建议或者直接贡献代码,谢谢!

更多现代化 PHP 知识,请前往 Laravel / PHP 知识社区

[项目推荐] Corcel 让你在 WordPress 中使用 Laravel的更多相关文章

  1. Wordpress中文章的特色图像Featured Image究竟存在哪里?

    最近项目需要,分析了一下Wordpress的特色图像 Feature Image的上传.保存方式,这一分析觉得Wordpress的数据结构设计还真是有想法. 先简单说一下结论: Wordpress中图 ...

  2. 什么是WebP以及如何在WordPress中使用WebP图像

    图像通常是缓慢加载网页的最大原因之一.它们不仅减慢了加载时间,而且还可以占用服务器上的大量空间和资源.仔细选择文件类型并压缩它们有助于降低加载速度,但它们只能在图像质量受损之前进行优化.另一种选择是使 ...

  3. GitHub Vue项目推荐|Vue+Element实现的电商后台管理系统功能丰富

    GitHub Vue项目推荐|mall-admin-web是一个电商后台管理系统的前端项目基于Vue+Element实现 主要包括商品管理.订单管理.会员管理.促销管理.运营管理.内容管理.统计报表. ...

  4. GitHub Python项目推荐|瓦力Devops开源项目代码部署平台持续部署

    GitHub Python项目推荐|walle - 瓦力 Devops开源项目代码部署平台 项目热度 标星(star):8418 (很不错的实用项目,大神作品,建议关注) 标星趋势 关注(watch) ...

  5. GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率

    GitHub Java项目推荐|功能丰富的 Java 工具包|提高开发效率 功能丰富的 Java 工具包.它帮助我们实现了常用的工具方法,从而减少代码的体积,提高开发效率.该项目最初是作者工作项目中的 ...

  6. Go优秀开源项目推荐

    前言 本文主要是收集Go语言开发的一些优秀项目和框架,个人见识有限肯定还有很多优秀的项目没有收录的,假如大家有好的Go项目可以在文末留言. Go优秀项目收集仓库 GolangFamily​github ...

  7. Github点赞超多的Spring Boot学习教程+实战项目推荐!

    Github点赞接近 100k 的Spring Boot学习教程+实战项目推荐!   很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Boot 进行开发,毕竟它这 ...

  8. 升级CUDA版本导致VS2010错误:未找到导入的项目XXX,请确认<Import>声明中的路径正确,且磁盘上存在该文件

    转自:http://www.cnblogs.com/yeahgis/p/3853420.html VS2010错误:未找到导入的项目XXX,请确认<Import>声明中的路径正确,且磁盘上 ...

  9. 如何在WordPress中使用七牛云存储

    序:七牛云存储可以方便的将网站的图片等数据镜像到七牛云存储的空间,直接从云端将数据返回给用户.这样可以大大节省网站的空间,提升网站的访问速度. 真正显示一键实现WordPress博客静态文件CDN加速 ...

随机推荐

  1. Android短信验证码倒计时

    有两种实现方法 1.第一种方式:Timer /** * Description:自定义Timer * <p> * Created by Mjj on 2016/12/4. */ publi ...

  2. c++ --> 返回值分析

    返回值分析 函数不能通过返回指向栈内存的指针,返回指向堆内存的指针是可以的. 一.返回局部变量的值 可以有两种情况:返回局部自动变量和局部静态变量,比如: int func() { ; // 返回局部 ...

  3. Sagit.Framework For IOS 开发框架入门教程6:网络请求STHttp

    前言: IOS的文章,今天,再来补一篇,Sagit的教程: 虽然感觉IOS的文章没什么观众,还是努力写吧,-_-〜 Sagit 开源地址:https://github.com/cyq1162/Sagi ...

  4. 01_搭建Linux虚拟机(下)_我的Linux之路

    原文发布在特克斯博客www.susmote.com ​ 上一节已经给大家讲解了如何用VMware安装虚拟机,但是只讲了在VMware里面的操作 接下来我们讲在Linux内部的安装步骤 首先我们启动Li ...

  5. struct2_拦截器知识点.

    Struts2拦截器原理: Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表,最后一个 ...

  6. java基础笔记(3)----函数

    前言引入函数前,所有的代码都写在main主函数中,代码过多,代码冗余,可读性差. 引入函数后,函数是实现某一特定功能的代码块.一个类中可以定义多个函数,每个函数和main主函数都是并列关系. 函数: ...

  7. 开始补习JavaScript的第一天

    JavaScript介绍: ①.JavaScript是一种解释性的,基于对象的脚本语言. ②.JavaScript是一种轻量级的编程语言,可以嵌入到html页面中,由浏览器来解释执行. ③.JavaS ...

  8. IDEA 中配置JDK

    提前安装jdk,配置环境变量 一.配置jdk 1.依次点开File -->Project Structure,点击左侧标签页,点击SDKs 2.点击+号,选SDK 3.在弹出框选择jdk路径(我 ...

  9. 简单的C语言编译器--语法分析器

      语法分析算是最难的一部分了.总而言之,语法分析就是先设计一系列语法,然后再用设计好的语法去归约词法分析中的结果.最后将归约过程打印出来,或者生成抽象语法树. 1. 设计文法 以下是我的文法(引入的 ...

  10. 单向链表在O(1)时间内删除一个节点

    说删链表节点,第一时间想到就是遍历整个链表,找到删除节点的前驱,改变节点指向,删除节点,但是,这样删除单链表的某一节点,时间复杂度就是O(n),不符合要求: 时间复杂度是O(n)的做法就不说了,看看O ...