Most related-content plugins give you one global settings page and one block at the bottom of the article. This one is built around a different idea: you create Displays , and every display answers three separate questions. WHAT should be shown — content selection. WHERE should it appear — the place
PricingFree downloadThe WordPress.org download is free. Pro versions, add-ons or external services may cost extra.
CompatibilityRequires WordPress 5.4 and PHP 7.4.
SourceWordPress plugins · Oct 20, 2026
01 / Source details
About this tool.
Most related-content plugins give you one global settings page and one block at the bottom of the article. This one is built around a different idea: you create Displays , and every display answers three separate questions.
WHAT should be shown — content selection.
WHERE should it appear — the placement engine.
HOW should it look — layout, template and styling.
That separation runs all the way through the architecture:
One article can run several displays at once, each with its own content rules, position, design and priority — and the same item is never repeated twice on the page:
“Read Next” — 1 related post after paragraph 4.
“You May Also Like” — 3 posts after 65% of the article.
“More From This Category” — 6 posts in 3 columns at the end.
Displays are ordered by a priority value, can be activated or deactivated individually, duplicated, and exported to JSON for another site.
Weighted relation engine
Instead of “same category”, candidates are scored and ranked:
Every weight is adjustable from 0 to 100, so two posts sharing a category and three tags naturally outrank one sharing only a category. The primary category set by Yoast SEO or Rank Math is recognised and weighted separately. A Basic engine mode is included when you want plain term matching where every shared term counts the same.
Other content controls:
Related by — choose exactly which taxonomies create relatedness.
Recency window — how recent an item must be to earn the recency bonus (0–3650 days).
Fallback when relationships are thin — most recent, random, most-commented, or simply show fewer items.
Order — relevance score, newest first, recently updated, title A → Z, or random.
Total items — 1 to 60, independent of the column count.
Manual + automatic — your picks first, the remaining slots filled by the engine.
HTML-aware in-content placement
In-content insertion is resolved with a DOM pass. A block is only ever placed between top-level elements, so lists, tables, blockquotes, galleries and shortcodes are never split — content is never cut on </p> with a string function.
Available positions: before content, after title, after content, after paragraph X, before paragraph X, after X% of the article, middle of the article, before the first heading, after the first heading, before the last heading, before the conclusion, every X paragraphs, and every X words — the repeating positions with a maximum block count.
WooCommerce placements
24 product, shop, cart, checkout and order hooks:
Product page — before product, before/after title, after rating, after price, before/after short description, before/after variations, before/after Add to Cart, after product summary, before/after product tabs, after product page.
Shop and archives — before or after the product loop.
Cart — before cart, cart collaterals, after cart, empty cart.
Checkout — before or after the checkout form.
Order received — after the order.
Cart, checkout and order-received recommendations are derived from what is actually in the cart or in the completed order, and never recommend a product the customer already has.
Cross-content recommendations
The engine is not hard-coded to post → post. Set a source and a target and a blog article can recommend products, while a product page recommends the guides that explain it. Cross-content matching links the two by matching term slugs across the taxonomies of the target post types.
Display conditions
A display runs only where you want it:
Post types it is generated from.
Taxonomy rules — “only when the post has …” and “never when the post has …”, combined with AND or OR logic.
Specific items to include or exclude by ID.
WooCommerce product price range.
Visitor state — everyone, logged-in only, or logged-out only.
Per-post overrides
Inside the post or product editor, a Related Content metabox can override the global behaviour for that item: use global settings, automatic, custom only, custom first then automatic, or disabled entirely — plus its own always-recommend and never-recommend lists with an AJAX search picker.
Layouts, templates and responsive columns
Layout controls the structure, the template controls the visual DNA, and the two are independent.
Desktop / tablet / mobile columns are core settings , not advanced ones, and the item count is separate from the column count.
Adjustable grid gap.
Design controls
Heading text, tag (H2–H5, div, span) and alignment.
Fields to show: image, title, excerpt, category or term, date, author, reading time, read-more button — plus price, rating, Add to Cart and sale badge when WooCommerce is active. Fields a template does not support are ignored.
Excerpt length in words, image ratio (16:9, 4:3, 3:2, 1:1, 3:4, 2:3 or original), link target and button text.
Customize template : accent, card background, title, text, meta and border colours; corner radius, image radius, card padding, title size, text size; and shadow depth. Everything is emitted as CSS custom properties on the block wrapper, so nothing leaks into the rest of the page.
Live preview
The editor renders a real preview from real content on your site while you work, with desktop, tablet and mobile device toggles, a full-screen preview overlay and a template navigator for stepping through all 12 templates without leaving the screen.
Performance
Resolved recommendation IDs are cached per post and regenerated automatically when the post, its terms or the display change. Cache lifetime is selectable per display: disabled, 1 hour, 1 day, 1 week, 1 month.
Scoring happens in one grouped SQL query, not one query per candidate.
Nothing is enqueued globally. The stylesheet loads only when a display will actually render, and the carousel script only when a carousel is really on the page.
Optional lazy loading for recommendation images.
Analytics
Impressions and clicks are aggregated per day, so you can see click-through rate per template, per placement, per display and per recommended item — which recommendation strategy actually works, not just which one looks nice. Aggregated counters only: no cookies and no personal data. A retention window (0–1825 days) prunes old rows automatically.
Manual placement
Shortcode: [smart_related id="5"]
Gutenberg block: Related Content
Widget: Related Content (Stunning Related)
PHP: <?php srpp_the_related_content( 5 ); ?> (the older smart_related_content() still works)
Tools
Clear the recommendation cache, reset statistics, and export or import displays as JSON to move a configuration between staging and production.
Exclusions
Never recommend the current item, password-protected content, private content, content marked noindex by Yoast SEO or Rank Math, or out-of-stock products — plus excluded terms, excluded authors, excluded item IDs, and a guard against showing the same item twice on one page.
Privacy
The plugin sends nothing to any external service. Analytics rows contain a display ID, a source post ID, a target post ID, a template key, a placement key, a date and two counters — no IP addresses, no cookies, no visitor identifiers.
See it in action
Screenshots & previews.
The template library.The editor with live preview and device toggles.The collabsed tabs contains every control for a display.The first admin page.
02 / Source details
Getting started.
01Upload the plugin folder to /wp-content/plugins/ , or install the ZIP from Plugins → Add New → Upload Plugin .
02Activate it. A starter display, “Blog recommendations”, is created for you.
03Go to Related Content → Displays and click + Add Related Content .
04Answer the four questions — how it looks, what to show, where it appears, how many items — and save.
Optional: Related Content → Settings holds the global switches (cache, stylesheet, lazy images, analytics, retention, delete-on-uninstall), and Related Content → Tools holds cache clearing, statistics reset and JSON export/import.
03 / Source details
Frequently asked questions.
Does it work with custom post types?
Yes. Every public post type registered on the site is detected automatically — courses, documentation, portfolio, downloads, jobs, events and so on. The same applies to public taxonomies, which can all be used for relatedness.
Does it need WooCommerce?
No. WooCommerce is optional. When it is active, the product placements, the product fields (price, rating, Add to Cart, sale badge), the product templates and the price-range condition appear automatically.
Will it break my article markup?
No. In-content insertion uses a DOM pass and only places blocks between top-level elements. Lists, tables, blockquotes, galleries and shortcodes are never split.
Can several displays run on the same article?
Yes, that is the point. Each one has its own priority, and the duplicate guard stops the same item appearing in two blocks on one page.
Can I change the templates?
Yes. Copy any file from advanced-css3-related-posts-widget/templates/ into your-theme/advanced-css3-related-posts-widget/ and it will be used instead. The template helper functions ( srpp_tpl_image() , srpp_tpl_title() , srpp_tpl_meta() , …) are available there, and $context , $display and $items are in scope. Custom templates can also be registered with the srpp_templates filter.
Which shortcode attributes are supported?
id, post_id , items , template , layout , columns , tablet , mobile and heading . For example: [smart_related id="5" items="4" columns="4" template="tpl-07"] .
Relationship resolution is the expensive part of any related-content plugin, so it is done once per post and cached, and scoring runs as a single grouped SQL query. Front-end assets are conditional, so pages without recommendations load nothing at all.
What happens when I uninstall it?
Nothing is deleted unless you first enable Delete all plugin data on uninstall in Settings. With that switch on, displays, cached recommendation lists, per-post overrides, the statistics table and the plugin options are removed.
Website LLMs.txt and LLMs-Full.txt Generator is an LLMs.txt generator and llms-full.txt generator for WordPress. It helps site owners generate, manage, preview, validate, and serve AI discovery files from published public content. Use it to create structured /llms.txt and optional /llms-full.txt end
EngageDock AI is a customizable floating contact widget for WordPress websites that want more leads and faster visitor communication. It helps small businesses turn website traffic into calls, texts, emails, and callback requests from one clean contact panel. Key Features: Click-to-Call – One tap ca
Altify AI is an auto ALT text and AI ALT text plugin for WordPress images. It helps generate descriptive image ALT text for accessibility and image SEO. Use bulk image ALT text tools for your Media Library, generate featured image ALT text automatically, and scale WooCommerce image ALT updates with
The Accepted Payment Methods plugin is a straightforward, lightweight solution that enhances your website by displaying visually appealing icons of the payment methods you accept. This plugin is ideal for a variety of websites, including e-commerce platforms, service-oriented websites, and informati