

Ratings -> Settings: the shape, the scale, who may rate, and how a repeat is spotted
WP-PostRatings adds a rating control to any post, page or custom post type. Visitors pick a value, the vote is posted in the background, and the result appears in its place without a page load.
I spent most of my free time creating, updating, maintaining and supporting these plugins, if you really love my plugins and could spare me a couple of bucks, I will really appreciate it. If not feel free to use it without any obligations.
The simplest way, and the only one that works in a block theme without editing template files, is the shortcode. Put it in the post or page you want rated:
[ratings] rates the post it appears in.[ratings id="1"] shows the rating for post 1, wherever you put it.[ratings id="1" results="true"] shows post 1’s result without letting anyone vote from there.To put ratings on every post automatically, a classic theme can call the template tag from single.php, archive.php or index.php, anywhere inside the loop:
<?php the_ratings(); ?>
The settings live at WP-Admin -> Ratings -> Settings, which has a Settings tab and a Templates tab.
A Ratings block is available in the editor, under Widgets. Two settings in the sidebar:
[ratings] does, or give an id to show another post’s rating wherever you put the block.results="true" does.It renders on the server, so the preview in the editor is the real rating rather than an approximation, and changing your shape, colours or templates updates every post showing it without re-saving anything. The preview is deliberately not clickable: rating from the editor would record a real vote.
The shortcode still works and is not going anywhere. [ratings], [ratings id="1"] and [ratings id="1" results="true"] behave exactly as they always have, and a post already containing one needs no change. The block calls the same code the shortcode calls, so the two render identically — use whichever suits the post.
wp postratings list
wp postratings list --limit=50 --format=json
wp postratings get 42
wp postratings delete 42 --yes
wp postratings delete --all --what=logs
A rating lives in two places — the running totals each post displays, and a row per vote in the log. --what chooses which to clear: logs, data or both, and both is the default.
GET /wp-json/postratings/v1/post/<id>
POST /wp-json/postratings/v1/post/<id>/rate
Reading is public, because a rating is public. Rating takes the same wp_postratings_<id>-nonce the rendered control already carries, passed as a nonce parameter, and is subject to the same eligibility and repeat-rating settings as rating through the page.
Each response carries the rendered markup as well as the numbers, because your templates and your chosen shape decide what a rating looks like.
A refusal answers 403, not 400 — a rating already cast, a rating off the end of the scale, a bad nonce. 400 is kept for a parameter this plugin never had a chance to look at, and a post that does not exist is 404.
These routes are an addition. The admin-ajax.php wp_postratings action is unchanged and still supported.