وردپرس و لاراول

وردپرس و لاراول

وردپرس یکی از محبوب ترین اپلیکیشن های متن باز جهان هست و این یعنی خیلی از مردم برای مدیریت سایتشون این ابزار رو انتخاب می کنند. شرایطی پیش میاید که استفاده از وردپرس به عنوان Backend برای سایت مورد نظر شما بهتر است چون آموزش کاربر در زمینه کار با Backend  به حداقل میرسه و یا ممکنه کاربر کاملا با محیط وردپرس آشنایی داشته باشه. یک روش محبوب برای راه اندازی این سایت ها استفاده از وردپرس به عنوان ادمین و ساخت frontend در فریمورکی مثل لاراول است.

بیایید نگاهی به چند پکیج بیاندازیم که کار رو با وردپرس راحت می کنند :

WordPress Corcel

Corcel با استفاده از مدل های Laravel Eloquent و با هدف مدیریت دریافت مستقیم محتوا از دیتابیس وردپرس کاربرد داره. وقتی اون رو نصب کنید, میتونید با همان syntax همیشگی بصورت زیر ازش استفاده کنید :

// All published posts

$posts = Post::published()->get();

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



// A specific post

$post = Post::find(31);

این شامل پشتیبانی از پست ها, انواع پست ها, دسته بندی ها, صفحات و ضمیمه هاست. تنها ضعفش اینه که همچنان در حال توسعه هست.

WordPressToLaravel

WordPressToLaravel اطلاعات رو از وبلاگ wordpress.com همگام سازی میکنه. این پکیج برای اجرای زمان بندی شده cron job از طریق Laravel Scheduler طراحی شده. سپس بصورت خودکار اطلاعات پست رو دانلود کرده و به دیتابیس محلی شما وارد میکنه. وقتی راه اندازی شد شما مسئول ساخت مدل ها, کنترلر و view های خودتون برای یکپارچه سازی با دیتایس هستید, و برخی از مزایای استفاده از سیستم wordpress.com این است که اونها بصورت خودکار وردپرس رو آپدیت میکنند, از CDN استفاده می کنند و محتوا میتونه از طریق وبسایت, اپ موبایل یا اپ دسکتاپ اضافه بشه.

عیب این پکیج محدود بودن به اطلاعات پست هست و از دسته بندی ها و تگ ها پشتیبانی نمیکنه.

WP Eloquent

WP Eloquent پکیجی برای ساختwrapper برای جداول دیتابیس وردپرس هست. این شامل مدل  پست ها, نظرات, Meta پست, کاربران و Meta کاربران میشه. وقتی نصب کامل شد, یک نمونه از استفاده رو در ادامه مشاهده می کنید :

use WeDevs\ORM\WP\Post as Post;

Post::type('page')->get()

Post::status('publish')->get()

Post::type('page')->status('publish')->get()

همچنین این پکیج با پکیج Laravel DebugBar کار میکنه و نیازی به ساخت هیچ اتصال دیتابیس اضافی نداره.

laravel-wp-api

این پکیج به صورت مستقیم با WordPress JSON REST API برای سایت های self hosted یکپارچه سازی میشه.

بعد از نصب شما به WpApi alias بصورت زیر دسترسی دارید که کار رو برای کوئری زدن راحت میکنه :

$post = WpApi::post($slug);

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

+Wordpress

این پکیج امکان یکپارچه سازی وردپرس با میکروفریمورک Lumen که با لاراول ساخته شده رو فراهم میکنه.

ویژگی ها

  • پلاگین های موجود در جهان به علاوه ی یک قالب موجود است.
  • امکان اصلاح وردپرس و پلاگین ها وجود دارد.
  • سرعت کدگذاری قالب HTML با استفاده از موتور قالب Blade بالا میرود.
  • سازگاری با موبایل ها ساده تر می شود.
  • کار با وب سرویس های خارجی و ساخت اونها ساده می شود.
  • استفاده از سیستم مدیریت پکیچ های PHP مثل کامپوزر ممکن است.

این پکیج به راحتی با دستور زیر نصب میشه :

$ cd <parent-of-an-install-directory>

$ composer create-project laravel-plus/wordpress <an-install-directory>

همچنین میتونید فایل zip رو دانلود کنید و در محل سرور فایل هایش رو قرار بدید.

سپس دستور زیر رو برای اتمام نصب از طریق zip وارد کنید :

$ cd <installed-directory>

$ composer install

$ cp .env.example .env

$ php artisan key:generate

دستورات artisan این پکیج به صورت زیر است :

  • wordpress:status وضعیت وردپرس.
  • wordpress:install نصب جداول وردپرس.
  • wordpress:uninstall حذف جداول وردپرس.
  • wordpress:multisite:install نصب جداول برای چندسایت.
  • wordpress:multisite:uninstall حذف جداول برای چندسایت.
  • wordpress:theme لیست قالب ها.
  • wordpress:theme <name> جزئیات یک قالب.
  • wordpress:plugin لیست پلاگین ها.
  • wordpress:plugin <name> جزئیات یک پلاگین.
  • make:theme <name> ساخت قالب.
  • make:plugin <name> ساخت پلاگین.

سایر روش های یکپارچه سازی وردپرس و لاراول

قطعا پکیج های بالا تنها راه یکپارچه سازی این دو نیستند. در ادامه به روش های دستی که این یکپارچه سازی رو انجام میده اشاره خواهیم کرد :

  • WordPlate توسط کامپوننت های لاراول و سمفونی ساخته شده و از وردپرس بعنوان وابستگی از طریق Composer استفاده میکنه.
  • استفاده از وردپرس با Lumen
  • آموزش راه اندازی API لاراول به همراه بک اند وردپرس (بهمراه مثال)

همینطور که مشاهده می کنید تعداد زیادی روش برای یکپارچه سازی وردپرس و لاراول وجود داره, بسته به نیاز شما مطمئنا میتونید پکیج های بیشتر و اختصاصی پیدا کنید که کار رو برای هدف شما راحت می کنند.