Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You can safely show a WordPress.org rating summary—average score, total ratings, and the number of ratings at each star level—on another website by querying WordPress’s plugin or theme directory APIs. Individual written reviews are a separate problem: the documented installer fields establish rating data, not a generally supported feed for reproducing every review’s text. For full review content, link visitors to the item’s official WordPress.org reviews page and identify when your summary was retrieved.

Decide what “reviews” means for your display

Before choosing an implementation, separate these two outputs:

  • Rating summary: an average or percentage rating, total number of ratings, and counts for one- through five-star ratings.
  • Written reviews: the individual comments and author context published on WordPress.org.

The plugin and theme installer APIs document summary fields. They do not establish a generally supported endpoint for copying all written review text to your site. Treat the WordPress.org page as the canonical location for those comments.

Choose the right source

For a plugin

WordPress’s plugin installer helper, plugins_api(), can request rating percentage, total rating count, and individual star-count fields. Review objects are optional and are not requested by default. Confirm the current response for the specific directory item before relying on any additional field.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For a theme

Use the theme installer helper, themes_api(). Its documented rating and per-star count fields have false defaults, so explicitly request the rating fields in your query rather than assuming they will be returned.

Do not confuse these with a site’s REST API

The WordPress REST API is a JSON interface for interacting with content on an individual WordPress site. It is optional when building a theme or plugin and is not synonymous with the separate WordPress.org plugin and theme directory APIs. A site’s REST endpoint should not be presented as the WordPress.org review API.

Build a plugin-rating summary inside WordPress

The following pattern calls the installer API, checks for an error, escapes values for HTML, records the retrieval date, and links to the directory page. Replace the slug and URL with the directory item you are presenting. Verify field names against the current response before deploying.

<?php
$slug = 'example-plugin';
$args = array(
    'slug'   => $slug,
    'fields' => array(
        'ratings'     => true,
        'rating'      => true,
        'num_ratings' => true,
    ),
);

$info = plugins_api( 'plugin_information', $args );
$retrieved = gmdate( 'Y-m-d' );

if ( is_wp_error( $info ) ) {
    echo '<p>Rating data is temporarily unavailable. <a href="https://wordpress.org/plugins/example-plugin/#reviews">Read reviews on WordPress.org</a>.</p>';
} else {
    $average = isset( $info->rating ) ? (float) $info->rating : null;
    $total   = isset( $info->num_ratings ) ? (int) $info->num_ratings : 0;
    echo '<section aria-label="WordPress.org rating">';
    if ( null !== $average ) {
        echo '<p><strong>' . esc_html( $average ) . '%</strong> average rating</p>';
    }
    echo '<p>' . esc_html( $total ) . ' ratings (retrieved ' . esc_html( $retrieved ) . ')</p>';
    echo '<a href="https://wordpress.org/plugins/example-plugin/#reviews" rel="noopener">View reviews on WordPress.org</a>';
    echo '</section>';
}
?>

For a star histogram, read the returned per-star counts and render each value as text or a bar with an accessible label. Do not call a missing count zero unless your response-handling rules explicitly distinguish “zero” from “field absent.”

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Request theme ratings explicitly

The same presentation model applies to themes, but request the documented rating fields deliberately:

<?php
$args = array(
    'slug'   => 'example-theme',
    'fields' => array(
        'rating'  => true,
        'ratings' => true,
    ),
);

$info = themes_api( 'theme_information', $args );
if ( is_wp_error( $info ) ) {
    // Render a useful fallback and a link to the theme's WordPress.org page.
}
?>

Use the response’s documented theme fields for the average, total, and star distribution. A plugin, host, or filter can alter a helper’s response, so inspect the actual object and handle absent values.

Render the data clearly and honestly

  • Label the item as a WordPress.org rating, not as a review collected by your site.
  • Show the total count alongside the average; an average without its sample size is ambiguous.
  • If you show a histogram, label each row “5 stars,” “4 stars,” and so on, with the returned count.
  • Display the retrieval date. Directory values can change, and the documented material does not establish a guaranteed live-sync interval.
  • Link prominently to the official reviews page. Let visitors read the original comments, author information, and directory context there.
  • Escape every value for its output context and never insert returned text into HTML without sanitization.

PHP in WordPress versus an external client

Approach Best use What it establishes Important limitation
plugins_api() Plugin-focused WordPress code Plugin rating percentage, total count, and star-count options Review objects are not requested by default; confirm the current response.
themes_api() Theme-focused WordPress code Theme rating and per-star fields when requested Rating fields default to false in the documented options.
Site REST API A front end consuming content from that particular site JSON access to that site’s public or protected content under its access controls It is not a WordPress.org directory-review endpoint.
External client A separate application or static front end Whatever directory response your implementation is authorized and able to retrieve Implement response validation, escaping, caching, and failure states yourself; no quota or refresh guarantee is established here.

Handle outages, empty responses, and stale data

When the request fails

Keep the page useful: show a short unavailable message and the direct WordPress.org reviews link. Do not replace an error with a fabricated zero rating.

When fields are missing

Render only values that are present, or show “rating data unavailable.” Missing fields are not evidence that the item has no ratings.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When your site is unavailable

A previously stored summary can prevent a directory request from breaking the page, but the supplied documentation does not define a required cache duration or rate limit. Choose and document an interval appropriate to your application, and expose the retrieval date so readers can judge freshness.

When the item is renamed or removed

Keep the slug and official URL configurable. If the API no longer returns the item, remove the summary rather than displaying an old value as current.

What about importing written WordPress.org reviews?

Do not promise a supported full-text review feed based only on the installer rating fields. If your requirement is to collect and display reviews submitted on your own site, a review plugin such as Site Reviews is a separate option; its directory listing and help material do not, by themselves, prove that it imports WordPress.org reviews. Verify import behavior and attribution requirements before adopting it.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Implementation checklist

  1. Identify whether the directory item is a plugin or a theme.
  2. Call the matching installer helper and explicitly request the rating fields.
  3. Validate the response and distinguish missing values from zero.
  4. Render the average, total, and optional star distribution with escaped output.
  5. Label the source as WordPress.org and include the retrieval date.
  6. Link to the item’s official WordPress.org reviews page.
  7. Provide a graceful fallback for errors, removed items, and unavailable fields.
  8. Test your cache and refresh policy without claiming a directory-mandated interval.

Frequently Asked Questions

Can I show the full text of WordPress.org reviews on my site?

The documented installer fields establish rating summaries, not a generally supported feed for reproducing every written review. Link readers to the official WordPress.org reviews page unless you have separately verified a supported method and the permissions needed for republishing.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do I have to use the WordPress REST API?

No. The REST API serves JSON from an individual WordPress site; plugin and theme directory data use separate installer APIs. Choose the interface that matches your data source.

Why are theme ratings missing from my response?

The documented theme rating and per-star fields default to false. Request them explicitly and handle responses in which a field is absent.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.