{"id":397222,"date":"2026-11-07T08:19:01","date_gmt":"2026-11-07T08:19:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/kreativ-smart-related-posts\/"},"modified":"2026-11-07T08:37:06","modified_gmt":"2026-11-07T08:37:06","slug":"kreativ-smart-related-posts","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/kreativ-smart-related-posts\/","author":14194673,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.3","stable_tag":"1.2.3","tested":"7.1.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Kreativ Smart Related Posts","header_author":"Andrei Olaru","header_description":"Display related posts using shared categories\/tags, with optional AI re-ranking. Includes auto-insert, shortcode, and a dynamic block.","assets_banners_color":"f7f9f5","last_updated":"2026-11-07 08:37:06","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":236,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.3":{"tag":"1.2.3","author":"anolaru","date":"2026-11-07 08:37:06","revision":3789198}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3789180,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3789180,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3789180,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3789180,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"kreativ-smart-related-posts\/related-posts":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"kreativ-smart-related-posts\/related-posts","version":"1.2.3","title":"Kreativ Smart Related Posts","category":"widgets","icon":"admin-post","textdomain":"kreativ-smart-related-posts","editorScript":"kreasmre-block","editorStyle":"kreasmre-block-editor","usesContext":["postId","postType"],"attributes":{"layout":{"type":"string","enum":["grid","list","minimal"],"default":"grid"},"posts":{"type":"number","default":6},"excerpt":{"type":"boolean","default":false},"thumbnail":{"type":"boolean","default":true},"target":{"type":"string","enum":["same","new"],"default":"same"},"date":{"type":"boolean","default":false},"category":{"type":"boolean","default":false},"heading":{"type":"string","enum":["h2","h3","h4"],"default":"h3"}}}},"tagged_versions":["1.2.3"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3789198,"resolution":"1","location":"assets","locale":"","width":1440,"height":570},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3789198,"resolution":"2","location":"assets","locale":"","width":1440,"height":505}},"screenshots":{"1":"Pin or exclude related posts with the editor's per-post controls.","2":"Preview the related-posts block and customize its layout in the block editor. The preview uses example titles."}},"plugin_section":[],"plugin_tags":[2353,6681,1089,186],"plugin_category":[55],"plugin_contributors":[256212],"plugin_business_model":[],"class_list":["post-397222","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-internal-links","plugin_tags-related-posts","plugin_tags-seo","plugin_category-seo-and-marketing","plugin_contributors-anolaru","plugin_committers-anolaru"],"banners":{"banner":"https:\/\/ps.w.org\/kreativ-smart-related-posts\/assets\/banner-772x250.png?rev=3789180","banner_2x":"https:\/\/ps.w.org\/kreativ-smart-related-posts\/assets\/banner-1544x500.png?rev=3789180","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kreativ-smart-related-posts\/assets\/icon-128x128.png?rev=3789180","icon_2x":"https:\/\/ps.w.org\/kreativ-smart-related-posts\/assets\/icon-256x256.png?rev=3789180","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/kreativ-smart-related-posts\/assets\/screenshot-1.jpg?rev=3789198","caption":"Pin or exclude related posts with the editor's per-post controls."},{"src":"https:\/\/ps.w.org\/kreativ-smart-related-posts\/assets\/screenshot-2.jpg?rev=3789198","caption":"Preview the related-posts block and customize its layout in the block editor. The preview uses example titles."}],"raw_content":"<!--section=description-->\n<p>Help readers find their next interesting article. Kreativ Smart Related Posts recommends published posts that share categories and tags with the current post, with controls to fine-tune the result.<\/p>\n\n<p>It works out of the box with taxonomy-based related posts and can optionally use the WordPress AI Client to re-rank candidates for stronger semantic relevance.<\/p>\n\n<h4>Make recommendations your own<\/h4>\n\n<ul>\n<li>Display recommendations automatically after single posts, or place them with a block or shortcode.<\/li>\n<li>Choose a grid, list, or minimal layout and customize thumbnails, accent color, columns, and card radius.<\/li>\n<li>Pin or exclude specific posts using the post editor's manual controls.<\/li>\n<li>Choose whether to show excerpts, dates, categories, or fallback posts.<\/li>\n<li>Cache results and optionally enable background AI re-ranking through the WordPress AI Client.<\/li>\n<\/ul>\n\n<p>AI is optional and disabled by default. Category and tag matching works without an AI provider or API key.<\/p>\n\n<p>Backwards compatibility:\n- Existing installations retain the legacy shortcodes <code>[smart_related_posts]<\/code> and <code>[kreativ_related_articles]<\/code> when those names are not already registered by another plugin.\n- Sites previously using direct OpenAI must configure a WordPress AI provider and explicitly re-enable AI re-ranking. Older WordPress versions continue to display taxonomy-based recommendations.<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>All plugin source files, including the block editor JavaScript and CSS, are included in the plugin. No build step is required. The maintained source is available at https:\/\/github.com\/aolaru\/kreativ-smart-related-posts.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>When you enable AI re-ranking, source post titles and excerpts and candidate IDs, titles and excerpts are sent through the WordPress AI Client to the provider configured for your site. Consult that provider's privacy policy and terms before enabling it. This requires WordPress 7.0 or later, a configured text-generation provider, and caching. Requests run in a scheduled background task for published posts. No external AI request is made by default.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress dashboard, go to <strong>Plugins &gt; Add New Plugin<\/strong> and search for <strong>Kreativ Smart Related Posts<\/strong>.<\/li>\n<li>Install and activate the plugin. Alternatively, upload its ZIP through <strong>Plugins &gt; Add New Plugin &gt; Upload Plugin<\/strong>.<\/li>\n<li>Open <strong>Settings &gt; Kreativ Smart Related Posts<\/strong> to choose a layout, number of posts, and display options.<\/li>\n<li>Automatic insertion is enabled by default for single posts. To place recommendations manually instead, turn it off in the settings and add the <strong>Kreativ Smart Related Posts<\/strong> block or <code>[kreasmre_related_posts]<\/code> shortcode to a post.<\/li>\n<li>To customize recommendations for an individual post, use its manual include and exclude controls in the post editor.<\/li>\n<\/ol>\n\n<p>Optional AI re-ranking requires WordPress 7.0 or later, a configured WordPress AI Client text-generation provider, and caching. Review your provider's privacy policy before enabling it.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20ai%3F\"><h3>Does this plugin require AI?<\/h3><\/dt>\n<dd><p>No. Core related-post matching works without AI. Optional AI re-ranking requires WordPress 7.0 or later and a configured text-generation provider for the WordPress AI Client.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20to%20the%20configured%20ai%20provider%3F\"><h3>What data is sent to the configured AI provider?<\/h3><\/dt>\n<dd><p>Only when AI re-ranking is enabled and a provider is configured, the plugin sends:\n- Source post title and excerpt\n- Candidate post IDs, titles, and excerpts<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20cache%20results%3F\"><h3>Does the plugin cache results?<\/h3><\/dt>\n<dd><p>Yes. Related post results are cached with WordPress transients to reduce repeated database lookups and API calls. Cache duration is configurable, and caches are cleared when posts or category\/tag assignments change.<\/p><\/dd>\n<dt id=\"does%20ai%20ranking%20slow%20down%20page%20loads%3F\"><h3>Does AI ranking slow down page loads?<\/h3><\/dt>\n<dd><p>Visitors receive taxonomy-based recommendations immediately. When enabled, AI ranking refreshes in the background through WP-Cron, and later visits use the cached AI results. Caching must be enabled for background AI ranking; with caching disabled, only taxonomy-based results are used. Sites with WP-Cron disabled need a server cron job to process scheduled WordPress events.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20a%20post%20has%20no%20related%20category%20or%20tag%20matches%3F\"><h3>What happens when a post has no related category or tag matches?<\/h3><\/dt>\n<dd><p>You can choose to show nothing, latest posts, or posts from the same author.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20create%20custom%20database%20tables%3F\"><h3>Does the plugin create custom database tables?<\/h3><\/dt>\n<dd><p>No.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Removed the direct OpenAI integration. AI re-ranking now uses the WordPress AI Client only.<\/li>\n<li>Existing direct OpenAI users must configure a WordPress AI provider and explicitly re-enable AI re-ranking.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Added distinctive prefixes and backwards-compatible migration of existing settings and overrides.<\/li>\n<li>Added optional WordPress AI Client integration on WordPress 7.0 and later.<\/li>\n<li>Provided readable block editor CSS and documented the public source repository.<\/li>\n<li>Corrected the WordPress.org contributor username.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Restricted post search to published posts and protected saved unpublished selections with per-post permission checks.<\/li>\n<li>Fixed cache invalidation for persistent object caches and rechecked publication status on cache hits.<\/li>\n<li>Shared block attribute defaults between PHP and JavaScript using block.json.<\/li>\n<li>Added block API v3 support for current editors, with v2 compatibility for older WordPress versions.<\/li>\n<li>Moved AI ranking to WP-Cron with a worker lock, retry cooldown, and stale-job protection.<\/li>\n<li>Prevented duplicate auto-insertion alongside a shortcode or block and excluded secondary content loops.<\/li>\n<li>Ranked all taxonomy matches by relevance before applying the candidate limit.<\/li>\n<li>Limited block and shortcode output to 12 posts and cleaned up background tasks on deactivation.<\/li>\n<li>Improved output escaping and translator guidance for submission checks.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added searchable manual include\/exclude post picker in the post editor.<\/li>\n<li>Added display controls for accent color, thumbnails, image ratio, grid columns, and card border radius.<\/li>\n<li>Added fallback modes for posts with no category\/tag matches.<\/li>\n<li>Added display options for link target, date, category, and heading tag.<\/li>\n<li>Improved block editor preview to show styled grid\/list\/minimal previews.<\/li>\n<li>Extended shortcode and block attributes for the new display options.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Rebranded to Kreativ Smart Related Posts for broad public use.<\/li>\n<li>Added strict option sanitization.<\/li>\n<li>Added external services disclosure in settings\/readme.<\/li>\n<li>Added dynamic block namespace update.<\/li>\n<li>Added uninstall cleanup for options and transients.<\/li>\n<li>Added readable block editor script file instead of inline compressed block code.<\/li>\n<li>Added cache invalidation when posts or terms change.<\/li>\n<li>Improved AI re-ranking fallback to preserve the requested number of posts.<\/li>\n<li>Added translation bootstrap for PHP and block editor strings.<\/li>\n<li>Added backward-compatible shortcode alias.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Help readers discover more with related posts based on shared categories and tags.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/397222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=397222"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/anolaru"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=397222"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=397222"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=397222"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=397222"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=397222"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=397222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}