WP Manifestindependent plugin directory
manifest / social / brandtalk

BrandTalk

Brandtalk wordpress Ratings Plugin

by duigital · github.com/bywaylee-ai/brandtalk · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/bywaylee-ai/brandtalk/archive/refs/heads/main.zip

신뢰도 기반 별점·리뷰 서비스의 데이터/REST 레이어.

아키텍처 (v0.5.0 재작성)

HivePress 1.7.x 구조를 참고해 처음부터 재구성:

  • includes/class-core.php — 싱글턴 코어. brandtalk() 전역 함수, PSR식 오토로더 (\BrandTalk\Models\Reaction → includes/models/class-reaction.php), activate/update 훅(brandtalk/v1/activate, brandtalk/v1/update).
  • includes/helpers.php — BrandTalk\Helpers (bt\prefix, bt\merge_arrays, bt\rest_response …)
  • includes/configs/*.php — post-types / taxonomies / settings / meta-boxes 를 배열로 정의, brandtalk/v1/{config} 필터로 확장 가능.
  • includes/components/*.php — 자동 인스턴스화되는 컴포넌트(생성자에서 훅 등록): post-type, review, reaction, follow, verification, trust, installer, router, admin.
  • includes/models/*.php — 커스텀 테이블 경량 액티브레코드 + DDL(schema()).
  • includes/controllers/*.php — 라우트 정의(routes 배열) → Router 컴포넌트가 REST 등록.
  • includes/class-options.php — 정책 설정 접근자(단일 옵션 brandtalk_options).

기능·정책은 v0.4.0 과 동일하게 유지. 기존 슬러그/테이블/옵션/REST 네임스페이스 보존: brandtalk_review, brandtalk_category, brandtalk_rating, brandtalk_options, wp_brandtalk_{reactions,follows,verifications,trust_log}, brandtalk/v1.

근거 문서

  • 브랜드톡 기능정의서 v0.3 (A~S)
  • 브랜드톡 정책정의서 v0.2 (§13.1 포함)

기능

  • 리뷰 CPT + 계층형 카테고리(시드: 맛집/영화/음악/뉴스) + 별점 메타(1~5 필수, §2.1.4)
  • 커스텀 테이블 4종: reactions / follows / verifications / trust_log
  • 신뢰도 엔진: 좋아요 +1 / 싫어요 -1 / 신고 -(5~10) / 팔로워 +1 (§4.2), 리뷰어 신용도 가중치 -0.2~+0.2 — 반응자가 남긴 좋아요/싫어요는 (±1 ± 반응자 신용도)로 반영 (§4.2.7), 신뢰 판정 비율 > 0.51 (§4.3), 레벨 5단계 (§4.4)
  • §13.1 적용 범위(Post): 설정 화면에서 포스트 타입 체크박스로 연동, 연동 포스트 타입에 "브랜드톡 카테고리" + "브랜드톡 별점" 노출
  • §13.1.3 프론트 노출: 연동 포스트 타입의 글에 brandtalk_rating(1~5)이 있으면 본문·발췌문에 별점 블록을 자동 표시. 숏코드 [brandtalk_rating], 관리자 글 목록 컬럼.
  • 하위 별점 항목(Criterion): 재사용 가능한 하위 평가 항목(예: 맛·가격·분위기).
    • brandtalk_criterion 택소노미 — 리뷰 › "하위 별점 항목" 에서 추가/편집/삭제
    • 브랜드톡 카테고리 편집화면에서 체크박스로 연결 (텀 메타 brandtalk_criteria, 순서 보존)
    • 같은 항목을 여러 카테고리에서 공유 가능
    • 리뷰/글의 별점 메타박스에 카테고리별 하위 항목 점수 입력, 프론트에 함께 표시
  • §11.3 설정 가능 정책값: 신고 감점(5~10) / 신뢰 임계값 / 랭킹 상한 / 지역 잠금 — 설정 화면 제공

REST API (brandtalk/v1)

응답 봉투(HivePress 규약): 성공 { "data": … } / 실패 { "error": { "code": N, "errors": [ … ] } }

공개(비로그인): GET /auth/providers GET /categories (각 카테고리에 연결된 criteria 포함) GET /criteria (하위 별점 항목 전체; ?category=slug|id 로 필터) GET /reviews (category, author, orderby=date|rating, order, page, per_page) GET /reviews/{id} GET /users/{id}/trust GET /rankings (type=my|friends) ※ friends 는 로그인 필요 GET /recommendations

로그인 필수: POST /reviews (rating, category, content, image_id, criteria{criterion_id:1~5}) POST /reviews/{id}/reactions (type = like|dislike|report) DELETE /reviews/{id}/reactions POST /users/{id}/follow DELETE /users/{id}/follow GET /verifications POST /verifications (type = region|friend|social|info|category, payload)

액션 훅

  • brandtalk/v1/activate, brandtalk/v1/update, brandtalk/v1/deactivate, brandtalk/v1/setup
  • brandtalk/v1/review/published ( $post_id, $user_id ) — §9.6 팔로워 노티 연결점
  • brandtalk/v1/reaction/changed ( $review_id, $user_id, $type )
  • brandtalk/v1/follow/created | follow/deleted ( $following_id, $follower_id )
  • brandtalk/v1/verification/submitted | verification/reviewed
  • brandtalk/v1/trust/recalculated ( $user_id, $score, $level )
  • brandtalk/v1/rating_html ( $html, $post_id, $rating ) — 필터: 프론트 별점 HTML
  • brandtalk/v1/rating_position ( $position, $post_id ) — 필터: before|after (기본 before)
  • brandtalk/v1/category/criteria_updated ( $category_term_id, $criterion_ids )

미포함 (범위 밖)

  • 소셜 로그인 OAuth 흐름 구현 (제공자 목록·키 스키마는 포함)
  • 관리자 리뷰·신고·신뢰도 관리 화면
  • HivePress 의 필드/블록/템플릿/라우팅(프론트) DSL — 데이터·REST 레이어에 불필요하여 생략

미확정 (정책정의서 제5부, 승인 대기)

신뢰도 레벨 구간·강등 임계·완화 산식, 신고 차등 감점, 랭킹/추천 가중 고도화, 추천 컨텐츠 외부 소스, "WordPress" 로그인 해석, 블록체인 방지, 지인 인증 payload, 리뷰 사진/글 필수 여부, 노티 발송 채널, REST 토큰 인증·Scope·레이트리밋.

Changelog

0.6.3

  • 플러그인 개발자 정보 변경: Author todaymealduigital (duigital@gmail.com). Author URI · Contributors · Plugin URI(placeholder) 갱신.

0.6.2

  • 프론트 리뷰 섹션(좋아요/나빠요 포함)을 댓글 영역 바로 위에 노출한다.
    • 클래식 테마: comments_template 훅. 블록 테마: render_block(core/comments) 훅.
    • 댓글 영역이 있는 글에서는 the_content 본문 뒤 출력을 건너뛰고 댓글 바로 위로 옮긴다. 댓글이 닫혀 있고 댓글도 없는 글에서는 종전대로 본문 뒤에 폴백 출력.
    • the_content / comments_template / render_block / [brandtalk_reviews] 숏코드가 한 요청에 한 번만 출력하도록 Frontend::$section_done 가드.
    • 이전에 테마가 the_content 를 메인 루프 밖에서 렌더해 섹션이 안 보이던 문제 해결.

0.6.1

  • 관리자 "브랜드톡 › 리뷰어" 목록 화면 신설. 리뷰 CPT 또는 브랜드톡 별점이 등록된 글을 1건 이상 작성한 사용자별로 ID / 이메일 / 닉네임 / 리뷰 수 / 리뷰 평균 점수 / 순 좋아요 / 신용도(§4.2.7) / 신뢰도 점수·레벨 / 팔로워 를 한 표에 보여준다.
    • "리뷰" 집계 범위 = 리뷰 CPT + brandtalk_rating / brandtalk_criteria_ratings 메타가 있는 모든 포스트 타입의 글(글·페이지·향후 추가 CPT 포함, attachment 제외). 리뷰 수·평균은 전체 기준, 순 좋아요·신용도·신뢰도 점수는 리뷰 CPT 반응 기준(§4.2).
    • 컬럼 정렬(리뷰 수 DESC 기본) + 페이지네이션(30/쪽). 리뷰 수 → 해당 작성자 리뷰 목록, 이메일 → 사용자 편집 화면 링크. 권한 list_users.
    • 집계는 SQL 한 번(리뷰 집계 + 순 좋아요 서브쿼리 + 신뢰도 유저메타 조인) + 팔로워 배치 조회.
    • Reviewers_List 컴포넌트. §11.2.6 "사용자·신뢰도 관리"의 조회 부분.

0.6.0

  • 리뷰어 신용도 가중치(§4.2.7). 리뷰어의 리뷰가 받은 순 좋아요(좋아요−싫어요)를 구간으로 나눠 개인 신용도를 -0.2 ~ +0.2 (0.1 단위)로 매긴다: 순 좋아요 ≥ 상위기준 → +0.2, ≥ 하위기준 → +0.1, |순 좋아요| < 하위기준 → 0, ≤ -하위기준 → -0.1, ≤ -상위기준 → -0.2 (기본 하위 5 / 상위 20). 그 리뷰어가 다른 리뷰에 누른 좋아요/싫어요는 ±1 이 아니라 (±1 ± 그 리뷰어의 신용도)로 게시자 신뢰도에 반영된다. 신뢰도 점수는 이제 소수(2자리) 값을 가진다.
    • 설정: 리뷰 › 설정 › 신뢰도·정책 값 에 "신용도 ±0.1 기준" · "신용도 ±0.2 기준"(순 좋아요) 추가.
    • 유저 메타 brandtalk_trust_credibility. REST GET /users/{id}/trust · 리뷰 응답 author.trustcredibility 포함.
    • Trust::credibility_for_net() / recalc_credibility() / credibility_weight(), Reaction::net_likes_for_author() / weighted_counts_for_author().
    • 반응자 신용도는 각자의 캐시값을 재계산 시점에 읽는다(지연 정합 — 반응자 신용도가 바뀌면 그가 반응했던 게시자 점수는 다음 재계산 때 반영).

0.5.9

  • 프론트 "나도 리뷰하기" 폼에 하위 별점 항목 입력 추가. 브랜드톡 카테고리는 대상 글에서 상속해 텍스트로만 표시하고 선택할 수 없다. 그 카테고리에 연결된 하위 별점 항목별로 1~5 별점을 매길 수 있고(criteria[<id>]), 종합 별점과 함께 리뷰에 저장된다. 리뷰 카드에도 하위 별점 항목별 점수를 함께 표시한다.

0.5.8

  • 프론트 리뷰. 연동 포스트 타입의 글(브랜드톡 카테고리가 있거나 리뷰가 있는 글)에 리뷰 섹션을 본문 뒤에 노출한다. 다른 사용자가 리뷰 목록을 보고 좋아요/나빠요를 누를 수 있고(구독자 포함, 자기 리뷰 제외), edit_posts 권한이 있는 비작성자는 "나도 리뷰하기"로 종합 별점 + 간단한 텍스트 + 이미지(최대 5장)를 올릴 수 있다. 카테고리는 대상 글에서 상속. 한 사용자당 한 글에 리뷰 1개.
    • REST: POST /reviewstarget(대상 글) 파라미터 + images[] 멀티파트 업로드(제어된 업로더 — 구독자 권한 없이, 이미지 MIME만, 리뷰에 첨부한 것만 생성, 리뷰 삭제 시 함께 삭제). 권한은 edit_posts(구독자 제외). GET /reviewstarget 필터. 응답에 images 배열.
    • POST /reviews/{id}/reactions — 자기 리뷰 반응 차단(403).
    • [brandtalk_reviews] 숏코드. Frontend::render_reviews() / Review::reviews_for_target() / Review::existing_review().

0.5.7

  • 리뷰 대상 연결. 리뷰(brandtalk_review)는 제목을 직접 입력하지 않고, "리뷰 대상" 메타박스에서 기존 글 1개를 포스트타입별 드롭다운으로 선택한다. 이미 다른 리뷰에 연결됐거나 §13.1 별점 (brandtalk_rating / brandtalk_criteria_ratings)이 등록된 글은 목록에서 제외된다. 리뷰 제목은 연결된 글의 제목으로 자동 저장되며, 대상 글의 제목이 바뀌면 리뷰 제목도 따라 갱신된다. 포스트 메타 brandtalk_target(대상 글 ID). REST 리뷰 응답에 title + target{id,type,title,url} 추가. meta-boxes 컨피그에 attach_enabled=>false(연동 포스트타입에 붙이지 않는 박스) 플래그 지원.

0.5.6

  • 글 편집화면에서 브랜드톡 카테고리를 선택하면 하위 별점 항목이 즉시 나타나도록 수정 (이전에는 저장 후 새로고침해야 표시됨). 카테고리에 연결된 모든 항목을 렌더링해 두고 현재 선택된 카테고리의 항목 행만 표시·활성화한다. 선택이 바뀌면 인라인 스크립트가 즉시 토글(블록 편집기: core/editor 구독, 클래식: 카테고리 체크리스트 감시). 숨겨진 행은 disabled 라 저장 시 전송되지 않아 다른 카테고리 항목이 섞이지 않는다.

0.5.5

  • "브랜드톡" 목록 화면의 "Array to string conversion" / "headers already sent" 경고 수정. 통합 목록을 위해 메인 쿼리의 post_type 을 배열로 확장하면 WP 가 그 배열을 전역 $post_type 에 복사해 코어 edit.php 가 문자열로 오인하던 문제. 쿼리 직후 wp 액션에서 전역만 CPT 슬러그로 복구(목록 결과는 그대로 유지).

0.5.4

  • "브랜드톡"(edit.php?post_type=brandtalk_review) 목록 하나로 통합 — 별도 "브랜드톡 목록" 서브메뉴 제거. 이 목록에 브랜드톡 리뷰(CPT) + 별점이 등록된 연동 포스트 타입 글(post 등)이 함께 표시된다. 컬럼: 종류 / 제목 / 브랜드톡 카테고리 / 별점 / 하위 별점 평균. 제목 클릭 → 해당 항목 편집(리뷰 정보) 화면. 종류·브랜드톡 카테고리 필터, 별점 정렬. "전체" 카운트는 통합 기준으로 보정, 상태별 서브뷰는 숨김. (pre_get_posts + posts_where 로 확장; 첫 서브메뉴 라벨을 "브랜드톡" 으로.)

0.5.3

  • (0.5.4에서 통합됨) 별점 목록 화면 + Frontend::criteria_average() 헬퍼.

0.5.2

  • 하위 별점 항목(Criterion) — 재사용 가능한 평가 항목. brandtalk_criterion 택소노미(리뷰 메뉴에서 CRUD), 브랜드톡 카테고리 편집화면에서 체크박스 연결(텀 메타 brandtalk_criteria), 여러 카테고리에서 공유. 별점 메타박스에 카테고리별 항목 점수 입력, 프론트/REST 노출. GET /criteria, GET /categories 확장, POST /reviews 의 criteria 파라미터, brandtalk/v1/category/criteria_updated 액션.

0.5.1

  • §13.1.3 별점 프론트 노출 — Frontend 컴포넌트: 연동 포스트 타입 + brandtalk_rating 보유 시 본문/발췌문에 별점 블록 자동 표시. [brandtalk_rating] 숏코드, 관리자 글 목록 별점 컬럼, brandtalk/v1/rating_html · rating_position 필터.

0.5.0

  • HivePress 구조 참고 전면 재작성(코어/오토로더/컴포넌트/컨피그/모델/컨트롤러/라우터).
  • 기능·정책·슬러그·테이블·REST 네임스페이스는 v0.4.0 과 동일하게 유지.
  • REST 응답을 HivePress 봉투({data}/{error})로 통일.
  • §11.3 정책값(신고 감점·신뢰 임계·랭킹 상한·지역 잠금)을 설정 화면에 노출.

0.4.0

  • §13.1 플러그인 적용 범위(Post) — 설정 화면, 별점 메타박스, 카테고리 계층형.

0.3.0

  • 최초 릴리스 — 데이터/REST 레이어.