WordPress là một trong những open source php cms phổ biến nhất, có nghĩa là nhiều người cảm thấy thoải mái khi sử dụng nó làm admin để quản lý trang web. Xây dựng website bằng WordPress có ưu điểm là không cần phải đào tạo lại người dùng về cách quản lý nội dung, menu, hình ảnh,… Có một cách làm là sử dụng WordPress làm admin và sau đó xây dựng giao diện người dùng bằng Laravel framework.
Laravel cũng là một open source php framework phổ biến nhất. Vì vậy chắc chắn có rất nhiều người như chúng ta có nhu cầu kết hợp chúng lại với nhau, sau đây là một số các packages để chúng ta có thể làm được điều đó:
WordPress Corcel
Corcel sử dụng các Laravel Eloquent Models để lấy nội dung trực tiếp từ WordPress database. Sau khi cài đặt bạn có thể sử dụng các Eloquent Models như sau:
// Lấy tất cả các published posts $posts = Post::published()->get(); $posts = Post::status('publish')->get(); // Lấy post chỉ định $post = Post::find(31);
Nó hỗ trợ posts, post types, taxonomies, pages, categories, và attachments. Nhược điểm của package này là vẫn đang trong giai đoạn phát triển.
WordPressToLaravel
WordPressToLaravel đồng bộ hóa dữ liệu từ một blog trên wordpress.com. Nó được thiết kế để chạy scheduled cron jobs thông qua [Laravel Scheduler](. Sau đó nó sẽ tự động tải và nhập dữ liệu đăng lên cơ sở dữ liệu cục bộ của bạn.
Sau khi thiết lập, bạn sẽ phải tự xây dựng các models, controllers và views để tích hợp với database, và một số lợi thế để sử dụng hệ thống wordpress.com
là họ sẽ tự động quản lý việc nâng cấp WordPress, assets CDN, và có thể quản lý nội dung thông qua website, mobile app hoặc desktop app.
Hạn chế của package này là nó chỉ giới hạn ở dữ liệu các bài posts, không hỗ trợ các categories hoặc tags.
WP Eloquent
WP Eloquent là một package tạo một wrapper cho WordPress database tables. Nó bao gồm các models cho Posts, Comments, Post Meta, User, và User Meta. Ví dụ về cách sử dụng nó:
use WeDevsORMWPPost as Post; Post::type('page')->get() Post::status('publish')->get() Post::type('page')->status('publish')->get()
WP Eloquent cũng làm việc với Laravel DebugBar và không tạo thêm bất kỳ database connections nào.
laravel-wp-api
laravel-wp-api tích hợp trực tiếp tới WordPress JSON REST API .
Bạn có thể lấy dữ liệu một cách đơn giản bằng cách sử dụng WpApi alias:
$post = WpApi::post($slug); $catPosts = WpApi::category_posts($slug, $page);
Các phương pháp khác tích hợp WordPress và Laravel
Tất nhiên, 3 packages trên đây không phải là cách duy nhất để tích hợp WordPress và Laravel với nhau. Dưới đây là một số cách làm thủ công:
- WordPlate một phiên bản đơn giản của WordPress có thể cài đặt dưới dạng dependency thông qua PHP Composer.
- Sử dụng WordPress với Lumen
- Thiết lập API Laravel với WordPress backend
- Sử dụng Laravel 4+ Eloquent với WordPress
Như bạn thấy có rất nhiều cách hợp WordPress và Laravel với nhau, tùy thuộc vào mục đích của bạn mà bạn có thể chọn ra package hay cách thức làm phù hợp nhất.
Nguồn: WordPress and Laravel