
內容簡介
Init Review System 是一款為 WordPress 網站提供乾淨且可自訂的五顆星評分系統的外掛。它支援多標準評價、表情符號反應系統,並可與任何佈景主題或自訂介面輕鬆整合,提升用戶互動體驗。
【主要功能】
• 支援 Gutenberg 的區塊編輯器
• 五顆星評分系統
• 多標準評價支援
• 表情符號反應系統
• 自動計算平均分數
• 可選擇登入要求與嚴格 IP 檢查
外掛標籤
開發者團隊
② 後台搜尋「Init Review System – Reactions, Multi-Criteria, Guest-Friendly」→ 直接安裝(推薦)
📦 歷史版本下載
原文外掛簡介
Init Review System adds a clean and customizable 5-star rating system to your WordPress site. Votes are stored via REST API, tracked with localStorage, and the average score is auto-calculated and optionally displayed with schema markup.
Built to be lightweight, developer-friendly, and easy to integrate into any theme or custom UI. Now with multi-criteria reviews, an emoji reactions system for richer user interaction, native Block Editor support, and read-only Abilities API integration for WordPress 6.9+.
This plugin is part of the Init Plugin Suite — a collection of minimalist, fast, and developer-focused tools for WordPress.
GitHub repository: https://github.com/brokensmile2103/init-review-system
Highlights:
NEW: Block Editor (Gutenberg) support — 4 blocks, one per shortcode
NEW: Abilities API support (WordPress 6.9+) — 3 read-only abilities
5-star voting via frontend
Multi-criteria review support
Emoji Reactions with Login Enforcement
Average score display
Optional login requirement
Optional strict IP checking
REST API for vote submission
JSON-LD schema for SEO
Works with any post type
Minimal, theme-friendly UI
Features
Block Editor (Gutenberg) blocks: Review Score, Review Widget, Review Criteria, Reactions Bar — each with a live server-side preview in the editor
Abilities API (WordPress 6.9+): review score, criteria reviews, and reactions summary exposed as discoverable, executable abilities via wp_get_abilities() and the wp-abilities/v1 REST namespace
5-star rating system
Multi-criteria review scoring (up to 5 custom criteria)
Emoji-based reactions bar with live counts (requires login)
REST API endpoint for reactions: /wp-json/initrsys/v1/reactions/toggle
Reactions stored in both post meta and dedicated user↔post mapping table
Accessibility-ready with aria-pressed + aria-live updates
Shortcode-based integration
Auto-insert blocks before/after content or comments
Optional login + IP check to prevent abuse
REST API endpoint: /wp-json/initrsys/v1/vote
Developer filters and extensible architecture
No jQuery, only minimal assets loaded when needed
Block Editor (Gutenberg)
Four dynamic blocks are available under their own Init Review System category in the block inserter — no shortcodes needed if you prefer working entirely in the editor:
Review Score — equivalent to [init_review_score]
Review Widget — equivalent to [init_review_system]
Review Criteria — equivalent to [init_review_criteria]
Reactions Bar — equivalent to [init_reactions]
Each block shares the exact same rendering code as its shortcode, so switching between the Block Editor and shortcodes never changes the output. Block settings map directly to shortcode attributes, and a live preview (via wp.serverSideRender) is shown right in the editor as you configure it.
Abilities API (WordPress 6.9+)
On WordPress 6.9 and above, Init Review System registers three read-only abilities under the init-review-system category:
init-review-system/get-review-score — average score and vote count for a post
init-review-system/get-criteria-reviews — criteria breakdown and a page of written reviews for a post
init-review-system/get-reactions-summary — emoji reaction counts for a post
These are discoverable and executable via PHP (wp_get_abilities()), and — for sites that opt into exposing it — the wp-abilities/v1 REST namespace. Actions that write data (voting, submitting a review, toggling a reaction) are intentionally not exposed as abilities, since an ability can be discovered and invoked directly by an AI agent or automation tool — voting/reviewing/reacting on a visitor’s behalf should never happen without the visitor’s own, in-context action. This integration is fully optional: on WordPress versions older than 6.9, it silently does nothing and the rest of the plugin is unaffected.
Usage
[init_review_system]
Displays interactive 5-star voting block.
Attributes:
– id: Post ID (default: current post)
– class: Custom CSS class
– schema: true|false – Output JSON-LD schema markup
[init_review_score]
Displays average score (read-only).
Attributes:
– id: Post ID (default: current post)
– icon: true|false – Show star icon (default: false)
– sub: true|false – Show /5 subtext (default: true)
– class: Custom CSS class
– hide_if_empty: true|false – Hide if no reviews (default: false)
[init_review_criteria]
Displays multi-criteria review block.
Attributes:
– id: Post ID (default: current post)
– class: Custom CSS class
– schema: true|false – Output schema markup (default: false)
– per_page: Number of reviews to show (default: 0 = all)
– paged: Current review page number (default: 1)
[init_reactions]
Displays emoji reactions bar under a post.
Attributes:
– id: Post ID (default: current post)
– class: Custom CSS class
– require_login: Always true (login required)
Filters for Developers
This plugin provides filters and actions to let developers customize auto-insert behavior, schema output, review permissions, and REST API logic.
init_plugin_suite_review_system_auto_insert_enabled_score
Enable or disable automatic score output (before/after content).
Applies to: Frontend filter
Params: bool $enabled, string $position, string $post_type
init_plugin_suite_review_system_auto_insert_enabled_vote
Enable or disable automatic voting block insertion.
Applies to: Frontend filter
Params: bool $enabled, string $position, string $post_type
init_plugin_suite_review_system_default_score_shortcode
Change the default shortcode used for score auto-insertion.
Applies to: Frontend
Params: string $shortcode
init_plugin_suite_review_system_default_vote_shortcode
Change the default shortcode used for voting block auto-insertion.
Applies to: Frontend
Params: string $shortcode
init_plugin_suite_review_system_require_login
Force login for submitting reviews, even if disabled in settings.
Applies to: REST /submit-criteria-review
Params: bool $require_login
init_plugin_suite_review_system_min_len_for_ws_check
Adjust minimum length threshold for triggering no-whitespace check.
Applies to: Backend + JS precheck
Params: int $threshold (default 20)
init_plugin_suite_review_system_repetition_threshold
Adjust repetition threshold for detecting excessive word repetition.
Applies to: Backend + JS precheck
Params: int $threshold (default 8)
init_plugin_suite_review_system_schema_type
Customize schema.org type (e.g., Book, Product, Course).
Applies to: Shortcode output
Params: string $type, string $post_type
init_plugin_suite_review_system_schema_data
Modify JSON-LD schema output array.
Applies to: Shortcode output
Params: array $data, int $post_id, string $schema_type
init_plugin_suite_review_system_after_vote
Run custom logic after a single-star vote is submitted.
Applies to: REST /vote
Params: int $post_id, float $score, float $avg_score, int $total_votes
init_plugin_suite_review_system_after_criteria_review
Trigger custom logic after a multi-criteria review is submitted.
Applies to: REST /submit-criteria-review
Params: int $post_id, int $user_id, float $avg_score, string $review_content, array $scores
init_plugin_suite_review_system_get_reaction_types
Customize available reaction types (labels + emojis).
Applies to: Reactions system
Params: array $types
init_plugin_suite_review_system_reaction_meta_key
Customize the meta key used for storing reaction counts.
Applies to: Reaction counts storage
Params: string $meta_key, string $rx_key
init_plugin_suite_review_system_ttl
Set TTL (in seconds) for object cache on review queries. Defaults to 300 (5 minutes) since 1.19. Return 0 to disable caching entirely, or any other value to change the duration. Cache is stored via wp_cache_set with group init_review_system and is automatically invalidated on new review submission and on admin approve/reject/delete.
Applies to: REST get reviews, get total reviews
Params: int $ttl (default 300, i.e. 5 * MINUTE_IN_SECONDS)
License
This plugin is licensed under the GPLv2 or later.
You are free to use, modify, and distribute it under the same license.
