Title: Launchmind Blog
Author: launchmind
Published: <strong>ታህሳስ  28, 2025</strong>
Last modified: ነሐሴ 17, 2026

---

Search plugins

![](https://ps.w.org/launchmind-blog/assets/banner-772x250.png?rev=3497445)

![](https://ps.w.org/launchmind-blog/assets/icon-256x256.png?rev=3497313)

# Launchmind Blog

 By [launchmind](https://profiles.wordpress.org/launchmind/)

[Download](https://downloads.wordpress.org/plugin/launchmind-blog.5.13.0.zip)

 * [Details](https://am.wordpress.org/plugins/launchmind-blog/#description)
 * [Reviews](https://am.wordpress.org/plugins/launchmind-blog/#reviews)
 *  [Installation](https://am.wordpress.org/plugins/launchmind-blog/#installation)
 * [Development](https://am.wordpress.org/plugins/launchmind-blog/#developers)

 [ድጋፍ](https://wordpress.org/support/plugin/launchmind-blog/)

## ማብራሪያ

Display AI-powered Launchmind blog content on your WordPress site.

### Testing

**For WordPress.org Reviewers:**

A demo API key is available for testing purposes:

    ```
    lm_test_demo1234567890
    ```

This key provides access to 6 sample blog articles for testing the plugin functionality.

**Test the connection:**

 1. Install and activate the plugin
 2. Go to **Launchmind** in the WordPress admin sidebar
 3. Click the **Settings** tab
 4. Enter the demo API key: `lm_test_demo1234567890`
 5. Click **Save Settings**
 6. Click **Test Connection** – should show “Connection successful”
 7. Go to the **Articles** tab to see 6 sample posts
 8. Add the Gutenberg block (`Launchmind Blog`) or use shortcode `[launchmind_blog]`
    on any page

**Sample articles included:**

 * 10 Tips to Boost Your E-commerce Conversion Rate
 * The Ultimate Guide to SEO for Online Stores
 * How to Create a Winning Product Description
 * Email Marketing Strategies That Actually Work
 * Social Media Marketing for Small Businesses
 * Customer Retention: How to Keep Customers Coming Back

**Getting your own API key:**

Sign up at [launchmind.io](https://launchmind.io) to get your personal API key for
production use.

### Privacy Policy

This plugin connects to external Launchmind.io servers to fetch blog content. By
using this plugin, you agree to Launchmind’s [Terms of Service](https://launchmind.io/terms)
and [Privacy Policy](https://launchmind.io/privacy).

**Data transmitted:**
 * Your Launchmind API key (for authentication) * Content 
requests (post slugs, language preferences)

**Data NOT transmitted:**
 * Personal data of your WordPress site visitors * WordPress
user information * Any other site data

All API communication uses HTTPS encryption.

## Screenshots

[⌊Modern admin dashboard with article overview⌉⌊Modern admin dashboard with article
overview⌉[

Modern admin dashboard with article overview

[⌊Gutenberg blog list block in the editor⌉⌊Gutenberg blog list block in the editor⌉[

Gutenberg blog list block in the editor

[⌊Single post block displaying article content⌉⌊Single post block displaying article
content⌉[

Single post block displaying article content

## Blocks

This plugin provides 2 blocks.

 *   Launchmind Blog
 *   Launchmind Single Post

## መጫን

 1. Upload the plugin to `/wp-content/plugins/launchmind-blog`.
 2. Activate the plugin through the Plugins menu in WordPress.
 3. Navigate to the Launchmind menu item (left sidebar) and enter your API key.
 4. Add a Gutenberg block (`Launchmind Blog`) or use the shortcode `[launchmind_blog]`
    on any page.

## የተለመዱ ጥያቄዎች

### Where do I find my API key?

Log in to your [Launchmind Dashboard](https://launchmind.io/backlinks/dashboard)
and navigate to the “Webshop Plugins” tab. Your API key is displayed in the green
box.

### Can I use shortcodes instead of Gutenberg blocks?

Yes! Use `[launchmind_blog limit="6" columns="3"]` for a blog list or `[launchmind_post
slug="your-post-slug"]` for a single post.

### Does this plugin track my visitors?

No. This plugin only communicates with Launchmind servers to fetch your blog content.
No personal data from your site visitors is collected or transmitted.

### What data is sent to Launchmind?

Only your API key and content requests (such as post slugs and language preferences)
are sent to authenticate and retrieve your blog posts. No visitor data is transmitted.

### Is the “Powered by Launchmind” branding required?

No. The branding is disabled by default. You can optionally enable it in the block
settings or shortcode attributes if you wish to display it.

## Reviews

![](https://secure.gravatar.com/avatar/7ef8a127a2a91ba373437755b9f92edef6ca2b943e2b7e147d0c1b35f3ffcf7b?
s=60&d=retro&r=g)

### 󠀁[Fijne WordPress-plugin voor SEO zonder gedoe](https://wordpress.org/support/topic/fijne-wordpress-plugin-voor-seo-zonder-gedoe/)󠁿

 [harrie07](https://profiles.wordpress.org/harrie07/) ጥር 6, 2026

Ik gebruik de Launchmind WordPress-plugin nu een tijdje en wat mij vooral aanspreekt
is hoe weinig tijd het kost. SEO stond altijd wel op mijn lijstje, maar eerlijk 
gezegd kwam het er vaak niet van omdat het zoveel handmatig werk is. Na de onboarding
was eigenlijk alles duidelijk. De blogs worden automatisch aangemaakt en ik krijg
ze per mail ter goedkeuring. Met één klik staat het artikel live op mijn site. Ik
hoef niet meer in WordPress te rommelen of teksten te kopiëren en plakken. Wat ik
prettig vind, is dat ik wel de controle houd. Als iets niet past, keur ik het gewoon
niet goed. De content sluit goed aan bij mijn website en is duidelijk geschreven
met zowel Google als AI-tools in gedachten. Voor de prijs die je betaalt is dit 
een fijne oplossing. Een SEO-specialist of marketeer kost al snel duizenden euro’s
per maand, terwijl dit veel werk uit handen neemt voor een fractie daarvan. Voor
mij werkt het vooral omdat het consistent doorgaat zonder dat ik er steeds bovenop
moet zitten. Al met al een handige plugin als je wel aan SEO wilt doen, maar geen
zin hebt in gedoe.

![](https://secure.gravatar.com/avatar/93ca26b8a91e1b017f3f34e6342b88adcef92c5b2c1454220080ebf5f25cbb9a?
s=60&d=retro&r=g)

### 󠀁[Already getting traffic](https://wordpress.org/support/topic/already-getting-traffic/)󠁿

 [voortkasumov](https://profiles.wordpress.org/voortkasumov/) ታህሳስ 29, 2025

After just 3 weeks we are already getting visitors coming from various AI models.
Can not wait to see the results snowball even more. Next best thing.

![](https://secure.gravatar.com/avatar/8e11de7a9fa47ba255b598176ad12702f2168c703c3e2f9feb7d866d52554b40?
s=60&d=retro&r=g)

### 󠀁[Perfect for AI engines and SEO](https://wordpress.org/support/topic/perfect-for-ai-engines-and-seo/)󠁿

 [cormanders](https://profiles.wordpress.org/cormanders/) ታህሳስ 28, 2025

Does exactly what it promises LaunchMind automatically creates and publishes GEO
and SEO optimized blogs that help my website appear in AI engines and AI answers.
It saves a lot of time and already brings in more qualified traffic. Highly recommended.

 [ Read all 3 reviews ](https://wordpress.org/support/plugin/launchmind-blog/reviews/)

## Contributors & Developers

“Launchmind Blog” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ launchmind ](https://profiles.wordpress.org/launchmind/)

[Translate “Launchmind Blog” into your language.](https://translate.wordpress.org/projects/wp-plugins/launchmind-blog)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/launchmind-blog/), 
check out the [SVN repository](https://plugins.svn.wordpress.org/launchmind-blog/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/launchmind-blog/)
by [RSS](https://plugins.trac.wordpress.org/log/launchmind-blog/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 5.13.0

 * **Changes now arrive within seconds instead of within an hour.** The plugin used
   to check for new articles once an hour, so a freshly approved article could sit
   and wait, and an article you took offline could stay on your site for another
   hour. Launchmind now notifies your site the moment something is published, updated
   or taken offline, and the site fetches it straight away. The hourly run stays
   in place as the safety net.
 * **Your blog page is set up properly on install.** The plugin created a bare /
   blog page with nothing else on it: no SEO title, no meta description, no menu
   item, and nothing at all in Sync mode. It now sets the page up completely, in
   the language of your site, adds it to your main menu if there is no link to it
   yet, and fills in the SEO fields of Yoast, Rank Math, SEOPress or The SEO Framework.
   Existing pages are left exactly as they are.
 * **Multilingual sites get a blog page per language.** On Polylang and WPML the
   plugin creates one page for each language that your site speaks and that Launchmind
   delivers, and links them together so the language switcher works.
 * **Sync is the new default for fresh installs.** Real WordPress posts in your 
   own database, images in your own media library, and content that keeps working
   even without a Launchmind connection. That last argument for Live mode, being
   instantly up to date, is gone now that changes are pushed through. Sites that
   already made a choice keep it.
 * **The article count no longer stops at 50.** The dashboard counted how many articles
   it had fetched rather than how many there are, so every customer with a larger
   library saw the same number. Paging through the list works properly now too.
 * **A tidier admin screen.** The Analytics tab is gone: it repeated the counters
   already at the top and had no figures of its own. Settings has moved to its own
   menu item next to Dashboard and Articles, so what you look at daily and what 
   you set once are no longer mixed together.

#### 5.12.1

 * **The readability dot is filled in as well now.** 5.12.0 deliberately left it
   grey, because the only figure we had was a raw reading-ease score that measures
   something different from what Yoast shows: it penalises long Dutch compound words
   while ignoring what actually makes a text readable. Launchmind now runs the same
   set of checks Yoast does (sentence length, paragraph length, subheadings, sentence
   beginnings, transition words, passive voice) and reports the share that pass,
   which is directly comparable to the figure in your editor.

#### 5.12.0

 * **Tags are now the article’s own keyword, not the whole list.** Every article
   carried the same ten tags, because the plugin received the keyword set of the
   entire cluster rather than the keyword this particular article targets. Articles
   now get their own keyword, which is what a tag is meant to be.
 * **Q&A articles get a category.** They come from an interview and belong to no
   content pillar, so they were left without any category at all. They now get their
   own “Q&A” category.
 * **The SEO dot in the article list is no longer grey.** Yoast only runs its analysis
   inside the editor, and a synced article never passes through it. The plugin now
   fills in the score Launchmind already determined. Note this is Launchmind’s assessment
   shown in Yoast’s colours; opening the article in the editor makes Yoast calculate
   its own. The readability dot is deliberately left alone, because we do not measure
   that reliably enough to colour it.

#### 5.11.9

 * **The sharing image is now exactly 1200×630 on every article.** That is the size
   Facebook, LinkedIn, X, WhatsApp and Slack all expect. Previously the plugin could
   only crop down, so an article whose cover was smaller ended up below the recommended
   width and networks fell back to a small card. The image is cropped from the centre
   and saved as a JPEG, which also keeps heavy PNG covers from bloating the preview.

#### 5.11.8

 * **Fix: the plugin now sets the sharing image tags itself on Yoast sites.** Three
   earlier attempts to get Yoast to pick the prepared image each failed at a different
   point in its pipeline, most recently by quietly swapping the address back to 
   the original file. Rather than keep guessing at its internals, the plugin now
   removes only Yoast’s two image tags and writes them itself. Everything else Yoast
   does, titles, descriptions, canonicals and schema, is untouched.

#### 5.11.7

 * **Fix: the sharing image is now its own image, so nothing can override it.** 
   Cropping inside the original image was not enough: Yoast takes the URL, looks
   up the image it belongs to, and then falls back to the full-size original. The
   page ended up stating the cropped size above the uncropped file. The prepared
   sharing image is now stored as an image in its own right, so its full size _is_
   the crop and no SEO plugin can reach past it. This also makes it work identically
   on Rank Math, SEOPress, All in One SEO and on sites with no SEO plugin at all.
 * Added the `name="image"` tag that LinkedIn asks for in its own Post Inspector,
   alongside the standard tags.

#### 5.11.6

 * **Fix: the sharing image really is applied now.** The code added in 5.11.5 ran
   but changed nothing, because of a faulty check on our side. Verified on a live
   site: the prepared image was ready and the page still pointed at the original.
   No re-sync is needed after this update, the change takes effect on the next page
   view.

#### 5.11.5

 * **Fix: the sharing image now actually reaches Facebook and LinkedIn.** 5.11.4
   prepared a correctly cropped sharing image but never got it onto the page, because
   recent versions of Yoast decide the sharing image in a way the previous approach
   could not reach. The plugin now writes it into the SEO plugin’s own field during
   the sync, where it is also visible to you under the article, and enforces it 
   on the page itself.
 * **Works without an SEO plugin, and with the other ones.** Yoast, Rank Math, SEOPress
   and The SEO Framework each get the image in their own field. Sites running no
   SEO plugin at all, and sites on All in One SEO, get the tag straight from this
   plugin instead. Whichever setup you are on, the sharing image is the prepared
   one and its stated size matches the file.

#### 5.11.4

 * **Fix: articles now have a real sharing image.** Until now the plugin handed 
   the article’s cover image to Facebook and LinkedIn exactly as it was. A cover
   is not a sharing image: one article’s cover was a tall 1024×1536 portrait, which
   does not fit the wide card those networks show, and another was a 2.9 MB image
   whose real size disagreed with what the page claimed. Both are reasons a network
   quietly falls back to no image at all. The plugin now prepares a proper 1200×
   630 sharing image during the sync and hands that over instead, with its true 
   dimensions. Existing articles get one on the next sync, without needing an edit.

#### 5.11.3

 * **Fix: link previews on Facebook, LinkedIn and WhatsApp.** In sync mode the article
   is a real WordPress post, so your SEO plugin already publishes a preview image
   and the plugin published a second one on top of it. The two disagreed about the
   image size, and scrapers that trust the first one reported no image at all. The
   plugin now leaves the preview image to your SEO plugin on synced posts.
 * **Fix: the preview image size is no longer guessed.** The plugin declared every
   preview image as 1200×630 pixels without ever measuring it. That was wrong for
   practically every article, which is what made social networks re-fetch or skip
   the image. The real size is now read from the media library, and when it cannot
   be determined the plugin says nothing and lets the network measure the file itself.
 * **Fix: articles are filed under their real author.** Synced articles were owned
   by the administrator account, so the REST API, oEmbed and the articles list in
   wp-admin all showed “admin” while the article page itself showed the correct 
   byline. Each writer now gets their own author record. These records have no role
   and no usable password, so they cannot sign in; they exist only so WordPress 
   knows who wrote the article. To keep everything on the administrator account 
   instead, add `add_filter('launchmind_create_author_users', '__return_false');`
   to your theme.

#### 5.11.2

 * **Fix: existing articles now get their category and SEO fields too.** The pillar
   category and the SEO plugin fields introduced in 5.11.0 were only written when
   an article’s content had changed, so articles already on your site kept their
   empty category and empty focus keyphrase and the feature looked broken. Those
   fields are now kept current on every run, whether the text changed or not.

#### 5.11.1

 * **Fix: clicking Launchmind opens the dashboard again.** Adding the articles list
   under the Launchmind menu in 5.11.0 pushed it to the top, and WordPress sends
   a click on a parent menu to whatever sits first. That made the settings unreachable.
   Dashboard is back on top, with Articles below it.

#### 5.11.0

 * **Fix: you can now actually edit a synced article.** Opening one in the WordPress
   editor was blocked by a permission setting left over from when these articles
   were not real posts yet. Even an administrator could not edit them. They behave
   like any other post now.
 * **New: articles are filed under their content pillar as a category.** Your articles
   are already grouped into topical clusters on the Launchmind side, but that grouping
   never reached WordPress, so the category column sat empty. Each article now joins
   the category for its pillar, which gives you real archive pages and breadcrumbs.
   A category you assigned yourself is never removed.
 * **New: your SEO plugin’s fields are filled in.** The focus keyphrase, meta description
   and SEO title are written to Yoast and Rank Math from what we already know, so
   you stop seeing a red dot on every article for a field that was simply empty.
   Anything you filled in by hand is left alone.
 * **Keyword tag archives are kept out of search results.** The tags on your articles
   are search terms rather than a real taxonomy, and each article carries most of
   the same ones, so those archive pages end up nearly identical and compete with
   your actual articles. Tag archives that contain only Launchmind articles are 
   now marked noindex (links are still followed). Tags you also use on your own 
   posts are untouched, and category archives stay indexable.

#### 5.10.0

 * **In Sync mode your blog overview now comes from your own database too.** Until
   now the listing was fetched from Launchmind on every page load, even in Sync 
   mode. That meant the overview could show articles that had not been imported 
   yet (clicking one gave a 404), the links carried a language parameter that no
   longer did anything, and the overview stopped working if the connection to Launchmind
   ever went away. Now the listing and the articles come from the same place: yours.
   That also means your blog overview joins WordPress search, categories and theme
   loops, which it could not before.
 * **New: an Articles list in the admin.** In Sync mode your imported articles now
   appear under Launchmind as a normal WordPress list, with filters, quick edit 
   and bulk actions. So you can set one or a hundred of them to draft whenever you
   want. The sync respects that: a post you set to draft yourself is flagged and
   never republished.
 * **Safety rail on reconciliation.** The sync drafts articles that disappeared 
   on the platform. It will now refuse to do that when a run reports zero articles
   while your site holds many, because “I saw nothing” is never a good enough reason
   to unpublish a whole blog.
 * Trade-off worth knowing: a brand new article appears in the listing once the 
   hourly sync has picked it up, rather than instantly.
 * **Fix: Q&A articles are recognised again in Sync mode**, so “show only Q&A” and“
   hide Q&A from the main listing” work as they should.
 * **Fix: an article whose FAQ or summary changed now re-syncs.** Those fields were
   not part of the change check, so an edit that touched only them was skipped and
   the page kept showing the old answer in its structured data.

#### 5.9.6

 * **Fix: Sync mode articles now get our reading styles.** Article typography (heading
   sizes, line height, spacing around paragraphs and lists) is applied through a
   wrapper that Live mode added but Sync mode did not, so synced articles fell back
   to whatever heading sizes the theme uses. On builder themes that meant oversized
   headings pulling the article apart. Same reading experience in both modes now.
 * **The Sync list is paginated at 10 articles per page**, so the screen stays readable
   once you have a hundred of them, and the counter shows your real total instead
   of the number on screen.

#### 5.9.5

 * **Fix: hourly Sync updates were failing every time.** The timestamp Sync sends
   to ask “what changed since last time” contained a character that a web address
   reads differently, so the platform rejected every incremental run with “Invalid
   updated_since timestamp” and the sync stalled after three attempts. Only full
   runs got through. Fixed on both sides, so existing installs are already working
   again before they update.

#### 5.9.4

 * **Accent colours now pick up Elementor themes too.** Our accents look for your
   theme’s primary colour, but the list of places we looked did not include Elementor,
   which is one of the most common builders there is. On those sites the accents
   fell back to plain text colour instead of your brand colour. Added, along with
   a couple of other common theme conventions.

#### 5.9.3

 * **Translations now use their own proper URL.** 5.9.2 gave every translation the
   Dutch slug with a language code appended. Launchmind already writes a real slug
   per language, so a German article now lives at its German address instead of 
   a Dutch one with “-de” stuck on the end. Better to read, and better to rank. 
   When no localised slug exists the language suffix is still used as a fallback.

#### 5.9.2

 * **Sync mode now keeps all your languages.** Until now Sync stored one post per
   article, in your site language only, and a `?lang=` link quietly served the site
   language instead. Articles that exist in several languages are now stored as 
   a post per language: your site language keeps its current address (`/blog/my-
   article/`) and every other language gets its own (`/blog/my-article-en/`). No
   existing URL moves, so nothing you already rank for is affected.
 * **Old `?lang=` links redirect** to the right language page instead of silently
   showing the wrong one, so links you shared earlier keep working.
 * **hreflang points at the real pages** in Sync mode, which is what tells Google
   these are translations of each other rather than duplicates.
 * **From the Sync list you can now reach both sides of an article**: the title 
   opens the WordPress editor so you can change anything you want, and the address
   below it opens the live page in a new tab. Translations are labelled with their
   language.
 * **The Sync sitemap is built from your own database**, so it lists every language
   and no longer advertises articles that have not been synced yet.

#### 5.9.1

 * **Fix: switching to Sync mode no longer breaks your article URLs.** After enabling
   Sync, `/blog/{slug}/` could serve your theme’s archive template (or a 404) instead
   of the article, because WordPress was still routing on the old rules. The only
   way out was to open Settings, Permalinks and press Save, which is not something
   you should ever have to know. The plugin now refreshes those rules by itself 
   on the first page view after a mode switch, front-end or admin.
 * **Fix: FAQ schema now also works in Sync mode.** In Sync mode the article is 
   served from your own database, so there is no live call to fetch the question-
   and-answer pairs from. Those are now stored alongside the post, which means synced
   articles emit the same FAQPage structured data that 5.9.0 introduced for Live
   mode. The same goes for the author role, bio and word count.

#### 5.9.0

 * **New: FAQ schema on every article.** Each Launchmind article carries five question-
   and-answer pairs. Until now they were plain headings on the page: search engines
   and AI assistants had no way to recognise them as a FAQ. The plugin now emits
   proper FAQPage structured data alongside the existing Article schema, so those
   answers become eligible for rich results and are far easier for ChatGPT, Claude
   and Perplexity to quote.
 * **New: breadcrumb structured data**, so your article shows its place in the site
   hierarchy in search results instead of a bare URL.
 * **Richer article schema.** Author role, bio and photo are now part of the Person
   block when your profile has them, plus word count and an explicit marker on the
   article’s direct-answer opening. All of it feeds the same goal: making it unambiguous
   who wrote this and which passage answers the question.
 * **New setting: AI search engine access** (Settings, under “Search and AI visibility”,
   on by default). Adds explicit allow rules to robots.txt for the crawlers behind
   ChatGPT, Claude, Perplexity and Google AI Overviews. If those crawlers cannot
   read your pages, no assistant can cite you, however good the article is. The 
   settings screen also warns you when a robots.txt file in your web root overrides
   WordPress, or when a CDN may be blocking the crawler before it ever reaches your
   site.
 * **IndexNow fix: refreshed articles are resubmitted, and the blog path is respected.**
   Two bugs in the existing IndexNow support. It submitted `/blog/{slug}` regardless
   of the Base Path you configured, so anyone using a different path was pinging
   URLs that do not exist. And once a URL had been submitted it was never submitted
   again, which meant the platform’s content-refresh engine rewrote articles without
   search engines ever hearing about it. The plugin now tracks the article version
   and resubmits on change. Existing installs migrate automatically on the first
   run.
 * Existing installs keep working unchanged: articles from an older platform response
   simply skip the new schema blocks.

#### 5.8.0

 * **New: Sync content mode — your articles as real WordPress posts, in your own
   database.** Next to the existing Live mode (articles load straight from Launchmind),
   you can now choose Sync under Settings  Content Mode or in the setup wizard. 
   Sync imports every article as a genuine `launchmind_article` post, copies the
   cover + inline images into your media library, and keeps everything up to date
   automatically (hourly incremental check, daily full reconciliation). URLs stay
   byte-identical (`/blog/{slug}/`), so switching modes never moves a page for SEO.
 * **Why this matters.** With Sync, your content is genuinely yours: it keeps rendering
   from your own database even if the connection to Launchmind is ever interrupted.
   Deactivating or uninstalling the plugin never deletes a single post or image.
 * **Safety rails built in.** Posts you edit yourself in WordPress are detected 
   and skipped (flagged on the new Sync tab, with a per-post “overwrite on next 
   sync” action). Articles removed on the platform become drafts here — nothing 
   is ever hard-deleted. A flaky connection can never mass-draft your library: reconciliation
   only runs after a complete, error-free pass.
 * **New Sync tab** on the Launchmind dashboard: last/next run, progress bar during
   imports, per-article status list, and a “Sync now” button.
 * **Server delta support.** Incremental runs use the new `updated_since`/`deleted_since`
   API parameters when available and fall back to full hash-based comparison on 
   older servers.
 * Multisite is untested with Sync mode in this release; everything is per-site (
   options, cron, media), but network setups should stay on Live mode for now.

#### 5.7.1

 * **New: `intro=""` attribute on `[launchmind_blog]` for a per-page custom welcome
   line.** Replaces the auto-generated “Welcome to {site name}’s blog…” copy with
   whatever the customer types, without forcing `show_intro="false"` + a separate
   text block above the shortcode. Plain text only (HTML is escaped) so the markup
   stays predictable across themes. Empty value falls back to the language-default
   welcome. Example: `[launchmind_blog intro="Welkom op de blog van Whoon. Hier 
   vind je interieurinspiratie."]`.
 * **Settings page: Shortcode Reference card rewritten as a copy-paste cookbook.**
   Adds clearly-labeled examples for the 5.7.0 `wp_post_types` merge, the new `intro
   =""` attribute, common tweaks (columns, limit, show_excerpt / tags), multilingual
   usage, Q&A-only, and the single-post shortcode. Each example sits under its own
   H4 so customers can scan instead of decoding an attribute list. No behavior changes
   for the existing options.

#### 5.7.0

 * **New: `[launchmind_blog]` shortcode merges any post type, not just native `post`.**
   Adds a `wp_post_types` attribute (comma-separated) so customers whose own articles
   live on a custom post type (e.g. Whoon’s “algemene-posts”, a news site’s “news”,
   a magazine’s “stories”) can mix them into the Launchmind listing alongside their
   content. Example: `[launchmind_blog wp_post_types="post,algemene-posts" columns
   ="3" limit="12"]`. Default stays `wp_post_types="post"` so existing installs 
   are unaffected. Sanitized with `sanitize_key()` per slug; empty/garbled values
   fall back to `post`. Solves the page-builder edge case where Elementor Pro’s 
   Posts widget can’t easily merge two post types in one query — drop the shortcode
   into an HTML/Shortcode widget instead and the merge happens server-side.
 * **Why this matters.** Until now, customers on a custom CPT had to either accept
   two separate listing widgets (one for their CPT, one for Launchmind) or set up
   a custom Elementor query ID with PHP. The shortcode now does the merge + chronological
   sort in one call, no PHP snippet required.

#### 5.3.6

 * **Fix: `launchmind_article` CPT now passes Elementor Pro’s second visibility 
   gate (`show_in_nav_menus`).** v5.3.5 set `show_ui=true` to make our CPT visible
   to page-builder Source dropdowns, but Elementor Pro filters its post-type list
   with `get_post_types(['public' => true, 'show_in_nav_menus' => true])` — the 
   standard WP convention for “linkable content types”. Our CPT had `show_in_nav_menus
   =false` so we passed the first gate (show_ui) but failed the second. Customers
   still saw no “Launchmind Articles” in Elementor Pro Posts widget after 5.3.5.
   This release flips `show_in_nav_menus` to track `page_builder_compat` so both
   gates open together. JetEngine was unaffected by either gate; this only matters
   for Elementor Pro / Loop Grid / similar.
 * **Side effect: “Launchmind Articles” now appears in Appearance  Menus.** Customers
   can technically pick a virtual post for a nav menu item, but the picker shows
   0 items (we have no real wp_posts rows), so this is a UI no-op rather than a 
   footgun.

#### 5.3.5

 * **Fix: `launchmind_article` CPT now visible to Elementor Pro + other page-builder
   Post widgets.** The CPT registration hardcoded `show_ui=false` to keep “Launchmind
   Articles” out of the WordPress admin sidebar. Side effect we hadn’t anticipated:
   Elementor Pro’s Posts widget and Loop Grid filter their Source dropdown by `show_ui`,
   so our CPT was invisible to them even with Page Builder Compatibility enabled.
   JetEngine used a looser filter and surfaced our CPT either way, masking the issue
   for sites that primarily used JetEngine. Fix: `show_ui` now tracks `page_builder_compat`(
   same as `public`, `publicly_queryable`, and `show_in_rest` already did). Admin
   sidebar suppression is independently controlled by `show_in_menu=false` so the
   admin UI stays clean. Customers with Page Builder Compatibility ON will see “
   Launchmind Articles” in every builder’s Source dropdown after this update.
 * **No customer action needed.** Existing JetEngine / Bricks / Breakdance integrations
   continue to work unchanged.

#### 5.3.4

 * **Fix: legacy `lm_<slug>_<random>` API keys couldn’t auto-resolve subscription_id.**
   v5.3.3’s auto-heal path only matched the modern `lm_<uuid>_<random>` key format.
   Customers who signed up before the UUID switch have keys shaped like `lm_broadwick_f7670e70...`—
   the slug isn’t parseable into a subscription UUID locally, so the regex returned
   empty and tracking stayed off even after v5.3.3 shipped. Adds a server-side fallback:
   when the regex doesn’t match, the plugin calls `/blog/customer` (already authenticated
   via api_key) and reads `subscription.id` from the response. Result is cached 
   via transient (12h TTL) so it costs at most one API call per half-day. Server
   endpoint now returns `subscription.id` in its response shape — read by 5.3.4+
   plugins, ignored by older ones.
 * **Backward compatible.** Existing UUID-format installs skip the network call 
   entirely (regex hits first). Sites where neither path resolves (no api_key set)
   still surface the admin notice from 5.3.3.

#### 5.3.3

 * **Fix: tracking beacons silently dropped on installs where `subscription_id` 
   was wiped (typically after a plugin re-install).** Pre-5.3.3, the JS beacon, 
   server-side PHP beacon, and diagnostic meta tag all read the `subscription_id`
   plugin option directly and bailed out when empty — even though the api_key (which
   stays put across re-installs) embeds the subscription UUID in its `lm_<uuid>_
   <random>` format. New helper `resolve_subscription_id()` returns the option when
   set, parses the UUID from api_key when not, and persists the derived value back
   into the option so subsequent calls skip the regex. Affected installs auto-heal
   on the next page-load — no customer action needed.
 * **Always-on analytics tracking — `enable_analytics` UI toggle removed.** The “
   Enable analytics tracking” checkbox in plugin settings is gone. Tracking is mandatory:
   partner dashboards exist precisely to show traffic, so a hidden off-switch was
   a footgun (the most common path was a customer flipping it off while testing 
   then forgetting). Sites that have legitimate reasons to suppress server-side 
   beacons can use the `launchmind_disable_server_pageview` filter (PHP) — that 
   path stays. The `launchmind_blog_enable_analytics` option in the database is 
   now ignored; cleaning it up is a no-op.
 * **Admin notice when subscription_id can’t be resolved.** When BOTH the option
   is empty AND the api_key is missing/malformed (the only state where tracking 
   is genuinely impossible), an amber warning surfaces in WP admin pointing the 
   customer at the settings page. Previously these installs sent zero traffic with
   no UI signal — partners assumed their site had no visitors when actually the 
   plugin couldn’t beacon anything.
 * **JS beacon detection widened.** `inject_tracking_script_on_footer` no longer
   gates on `$GLOBALS['launchmind_blog_post_data']` alone — it now uses the same
   three-path detection (CPT singular | query var | post object) the PHP beacon 
   got in 5.3.2. Sites where the global wasn’t populated for the active render path(
   CPT-singular templates served without the legacy slug interceptor) still get 
   JS beacons.

#### 5.3.2

 * **Fix: PHP server-side pageview beacon never fired on legacy slug-rendering sites.**
   v5.2 introduced a server-side PHP beacon that was supposed to count pageviews
   even when the JS beacon got stripped (cache plugins, ad-blockers). In practice
   it was hooked to `template_redirect` priority 20, which fires _before_ the content/
   template filters that populate `$GLOBALS['launchmind_blog_post_data']` under 
   the legacy slug-interception render path. Result: on every site using legacy 
   rendering (which is most of them), the `is_singular('launchmind_post') || get_query_var('
   launchmind_post')` gate failed, `register_shutdown_function` was never registered,
   and the beacon silently never fired — observed across all 4 active WP installs
   over the 14 days following the v5.2 release. Hook moved to `wp_footer` priority
   999 (the same hook the JS beacon already uses), and the gate now reads `$GLOBALS['
   launchmind_blog_post_data']` like the JS beacon does. Coverage now matches the
   JS beacon: any render mode that produces a Launchmind article — CPT singular,
   virtual query, or legacy slug interception — sends one server beacon per render.
   Bot UA filter, opt-out filter, and the existing 30s dedup window with the JS 
   beacon are all unchanged.
 * **Plugin version added to beacon body.** Both PHP and JS beacons now ship `plugin_version`
   in the request body, persisted to event metadata. Lets the backend monitor plugin
   adoption per customer and verify that fixes like this one are landing on installed
   sites.

#### 5.3.1

 * **Fix: PHP error on ACF fields that don’t return a string.** The 5.3.0 ACF compatibility
   hook included a catch-all `add_filter('acf/format_value', 'do_shortcode', 10);`
   that fired for _every_ ACF field type, including ones that return arrays, integers
   or booleans (image, gallery, repeater, true/false, number, relationship, etc.)—
   and `do_shortcode()` expects a string. On sites with non-string ACF fields the
   result was a PHP warning per render, plus the field returning an empty string
   instead of its actual value. The catch-all has been replaced with a `type=text`
   scoped filter, matching the existing `type=textarea` and `type=wysiwyg` filters.
   Net effect: shortcodes still work in `text`, `textarea` and `wysiwyg` ACF fields,
   but other field types return their native value untouched. Reported by @pippijn
   on the WordPress.org support forum.

#### 5.3.0

 * **Q&A articles get their own filter path — three flavours.** Articles produced
   by the new Voice Engine cycle now arrive with `is_voice_article: true` and an
   auto-injected “Q&A” tag. Three independent ways for customers to put them on 
   a separate page without writing a line of code: (1) **native taxonomy** — WordPress
   automatically maps the “Q&A” tag into a category/post_tag term, so `/category/
   q-and-a` (or whatever slug the host theme generates) lists Q&A articles out of
   the box; (2) **shortcode** `[launchmind_voice limit="6" columns="3"]` — drop 
   on any WP page, behaves exactly like `[launchmind_blog]` but pre-filters to Q&
   A articles only; (3) **block toggle** — the existing “Launchmind Blog” Gutenberg
   block gains a “Show only Q&A articles” toggle in the Filter panel. All three 
   live alongside each other; pick the one that matches your editing workflow.
 * **Optional “Hide Q&A from main listing” setting.** New toggle under Settings  
   Voice Engine. OFF by default (existing sites keep current behaviour: Q&A articles
   appear in the main blog listing). Enable it on sites that want a clean separation—
   Q&A articles only render on the dedicated `[launchmind_voice]` shortcode, the“
   Show only Q&A articles” block, or `/category/q-and-a`. Recommended OFF for most
   sites; flip it ON when you want a dedicated /qa page that stays distinct from
   the main blog flow.
 * **Backward-compatible API gate.** `is_voice_article` is read with a graceful 
   fallback: when the upstream Launchmind API hasn’t yet shipped the field …

## Meta

 *  Version **5.13.0**
 *  Last updated **2 ሳምንታት ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **6.9.7**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/launchmind-blog/)
 * Tags
 * [AI](https://am.wordpress.org/plugins/tags/ai/)[articles](https://am.wordpress.org/plugins/tags/articles/)
   [blog](https://am.wordpress.org/plugins/tags/blog/)[content](https://am.wordpress.org/plugins/tags/content/)
   [seo](https://am.wordpress.org/plugins/tags/seo/)
 *  [Advanced View](https://am.wordpress.org/plugins/launchmind-blog/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  3 5-star reviews     ](https://wordpress.org/support/plugin/launchmind-blog/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/launchmind-blog/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/launchmind-blog/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/launchmind-blog/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/launchmind-blog/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/launchmind-blog/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/launchmind-blog/reviews/)

## Contributors

 *   [ launchmind ](https://profiles.wordpress.org/launchmind/)

## ድጋፍ

Issues resolved in last two months:

     1 out of 1

 [View support forum](https://wordpress.org/support/plugin/launchmind-blog/)