6P by xguru 3달전 | favorite | 댓글 1개
  • Laravel의 Eloquent ORM 기반으로 WordPress 데이터베이스에서 직접 데이터를 쉽게 가져올 수 있도록 해주는 PHP 클래스 모음
  • WordPress를 백엔드 관리자 패널이나 CMS로 사용하고, 다른 PHP 앱에서 그 데이터를 모델 계층으로 쿼리할 수 있게 해줌
  • Laravel에서 Corcel을 사용하는 것이 가장 쉽지만, Composer를 사용하는 모든 PHP 프로젝트에서 사용 가능
  • config/corcel.php 설정 파일에서 WordPress 데이터베이스 연결 및 사용자 정의 포스트 타입, 쇼트코드 등록을 쉽게 할 수 있음

사용법 예제

  • Post::published()->get()로 발행된 모든 포스트 조회 가능, Post::find(31)로 특정 포스트 조회
    • 사용자 정의 Post 모델 클래스를 생성해서 connection 이름 등을 재정의할 수 있음
  • $post->meta->link로 커스텀 메타 값 조회
    • saveMeta(), createMeta() 메서드로 메타 데이터 생성 및 업데이트
    • hasMeta(), hasMetaLike() 스코프로 메타 필드 기준 포스트 검색 가능
  • newest(), oldest() 스코프로 Post와 User의 정렬 가능
  • Post::type('video')처럼 type() 메서드나 사용자 정의 클래스로 Custom Post Type 다룰 수 있음
  • config/corcel.php에 쇼트코드와 처리 클래스 매핑 가능
    • Post::addShortcode() 메서드로 쇼트코드 추가
    • 쇼트코드 파싱은 thunderer/shortcode 라이브러리 사용
  • $post->taxonomies()로 특정 포스트의 텍소노미 조회
    • Post::taxonomy()로 텍소노미로 포스트 검색
  • $page->attachment로 페이지/포스트의 첨부파일 조회
  • $post->thumbnail로 포스트/페이지 썸네일 조회
  • Option::get('siteurl')로 옵션값 조회
  • Menu::slug('primary')->first()로 특정 메뉴 조회
    • $menu->items로 메뉴 아이템 컬렉션 접근
    • $item->instance()로 원본 인스턴스(Page, Post, CustomLink, Term) 조회
    • $item->parent()로 부모 인스턴스 조회
  • User::find(1)처럼 포스트와 유사하게 사용자 조작 가능

WP REST API, WPGraphQL 및 Yii 프레임워크의 WordPress 브릿지인 yii2-wordpress 도 비슷하게 사용 가능합니다.