Changelog
3.6.14 (2026-09-09)
Features
- A post's tags are now shown on the post page — below the post body, every tag the post is assigned to appears as a clickable
tagchip under a Tagged: label, leading to that tag's page. They keep the order you arranged them in on the post edit page, and a tag that is not published on the store view being browsed is left out. Turn the whole row on or off in Stores → Configuration → Blog MX → Display settings → Show post tags — on by default, and settable per website and per store view. The label is translated in all 16 shipped languages.
Improvements
- A post's tag list is fetched once per page — the tags are now looked up a single time and reused by everything that needs them (the tag row itself and the page's cache tags) instead of once per request for each, and a post with no tags no longer runs a query at all. The lookup is also kept separately per store view, so a page that renders content for more than one store can no longer show one store's tags on another store's page.
Fixed
- Fixed blog pages that should be "page not found" returning something else. A tag or author page whose tag/author is not published on the store view being browsed used to resolve to a blog route anyway, and the blog then forwarded the request to a route that does not exist inside the blog — so instead of your storefront's standard 404 page, the visitor got an error or an empty page, and search engines were told the URL was fine. Those URLs now return a proper 404, as do a deleted post's URL, a missing category, and the category RSS feed when the feed is switched off.
- Fixed a renamed tag keeping its old name on already-cached pages. Post pages showing the post's tags, and any page carrying a Tag Cloud widget, are now refreshed as soon as the tag is renamed; previously the stale name stayed visible until the full page cache was flushed by hand.
3.6.13 (2026-09-04)
Features
- Import a WordPress blog into Blog MX — a new Content → Blog MX → Import page takes a WordPress export file (WXR,
.xmlor.wxr, up to 64 MB or whatever your server's PHP upload limit allows, whichever is lower) and creates the posts, categories, tags and authors it contains. Upload the file and you first get a preview — how many posts, categories, tags, authors and featured images the file holds — before anything is written. Then pick a Default author for posts that carry no WordPress author, the store views to import to, and what to do if a post URL already exists: skip that post, or import it under a-2style URL key. Confirm and you get a report of exactly what was created. Importing is strictly additive — an existing post is never modified or overwritten, and categories, tags and authors already in the blog are matched by name and reused instead of duplicated. Posts keep their publish date, URL key, meta title, excerpt, WordPress status (Published, Draft, Pending Review), categories with their parent hierarchy, tags and author; featured images are downloaded into yourmedia/blog/folder. Access is controlled by a new Import permission (with Roll Back an Import as a separate one), and Stores → Configuration → Blog MX → Import has a shortcut button to the page. - WordPress post bodies are converted to real HTML on the way in — WordPress stores post content half-finished and relies on its own theme to complete it, so imported as-is a post arrives as one wall of text sprinkled with
shortcodemarkers. The importer does that work once: Gutenberg block markers are dropped while the HTML they wrap is kept,captionbecomes afigure/figcaptionpair,gallery(which has nothing to render outside WordPress) becomes an invisible comment you can still see when editing, and any other shortcode loses its brackets but keeps everything it wrapped — so page-builder markup never costs you the content inside it. Blank lines become paragraphs and single line breaks becomebr /, skipping markup that is already structured, and code samples insidepre,code,script,styleandtextareaare left byte-for-byte alone. Bracketed prose such assicorcitation neededis recognised as text, not markup, and survives. If a body is too large or too irregular to convert, it is imported exactly as WordPress wrote it — formatting unconverted, every word intact — and the run reports that post as a warning rather than losing its text. Likewise, a featured image that cannot be downloaded is reported against its post; the post itself still imports. - Import history, with one-click rollback — every import (from the admin or the command line) is recorded as a row in the Import grid: when it started, the file, its status, posts created and skipped, errors and warnings, and who started it. The Roll back action undoes one run completely, permanently deleting the posts it created (Trash included, so their URL keys are freed) along with the categories, tags and authors it created. Only content stamped with that run is touched, so anything that was in the blog beforehand — including a category or author the import merely matched by name — is never at risk, and a category, tag or author that other content has started using since the import is kept and counted as such. If some posts cannot be deleted, the run is reported as partially rolled back with the number left behind, and can be retried.
- Re-read the report of any finished import — a View result row action rebuilds a past run's full report from its history row: the created and skipped counts, the named list of posts the collision policy left out (with their URL keys, and a note when the existing post is sitting in the Trash), and the per-post errors and warnings. Previously that report existed only in the page shown immediately after the import — reload and it was gone. A rolled-back run is topped with a banner naming the date it was rolled back, so the numbers below it are not mistaken for the current state of the blog; a partially rolled-back or unfinished run says so too.
- Errors / Warnings column in the import grid — each run now shows its two counts as a pair, so a run of 200 posts where 3 failed and 12 kept their original formatting no longer looks identical to a completely clean one. "0 / 12" is a run worth opening; "0 / 0" is not.
- Command-line import for large blogs —
bin/magento mirasvit:blog:import-wxr fileimports a file with the same result as the admin page and records the same history row, with--default-author,--store(comma-separated store view ids; omit for all) and--on-collision(skiporsuffix) matching the form's options.mirasvit:blog:import-listprints recent runs andmirasvit:blog:import-rollback id|tokenundoes one (--forceskips the confirmation prompt). The command line has no file-size ceiling, which is the route for agency-scale blogs: the admin page imports up to 2000 posts in one go and, above that, hands you the ready-made command to run instead.
Improvements
- ⚠️ Database schema change — a new
mst_blog_importtable records one row per import run, andmst_blog_post,mst_blog_category,mst_blog_tagandmst_blog_authoreach gain a nullable, indexedimport_idcolumn marking which run created the row (NULLfor everything not imported). Applied automatically on upgrade; no manual action is required. - ⚠️
import_idis readable over the REST API but cannot be written — the new field shows up in/V1/blog/post,/V1/blog/author,/V1/blog/categoryand/V1/blog/tagresponses as provenance, and deliberately has no setter: a client able to assign it could make a rollback delete content that import never created. - ⚠️ Unused admin route and classes removed — the
blog/post/inlineEditcontroller (left behind when the inline post editor was removed in 2023 and unreachable since),Block\Adminhtml\Author,Block\Adminhtml\Widget\Chooser\Container,Model\Config\Source\ViewModeSourceandUi\Editor\Modal\DataProvider. Nothing in the extension referenced them; if a customization of yours did, update it before upgrading. - The import screens work on Magento 2.3.7 as well as 2.4.x — the upload, preview, confirm and report pages relied on a template variable and on constructor typing that only newer Magento provides, which turned them into an exception dump (and broke
setup:di:compile) on 2.3.7. They now render across every supported version. - The import is hardened against hostile files — uploads are checked by extension, real MIME type and size, and stored under
var/rather than in the public media folder; the XML parser blocks XXE and "billion laughs" entity-expansion attacks and refuses any file that declares a DOCTYPE; and featured-image downloads are restricted to public http/https addresses, with private, loopback and cloud-metadata addresses refused, the connection pinned to the validated address, redirects not followed, and the response required to be a real image under 10 MB. - Abandoned import uploads are cleaned up automatically — a new daily cron job (03:30) deletes files that were uploaded but whose import was never confirmed, once they are a day old. Previously, picking a file and then closing the tab left a multi-megabyte export in
var/for good. - Import is listed in the blog menu switcher — the row of links every blog admin screen shows under its title now includes Import, so you can reach the importer from the page you are already on rather than only from the Content menu.
- All new import screens are fully translated into the 16 shipped languages, with each message kept as one whole sentence so it reads naturally rather than being assembled from fragments.
Fixed
- Fixed the Tags field on the post edit page adding a tag nobody typed. Simply tabbing through the field, or clicking away from it, used to submit an empty tag — and because the same handler was bound twice, it did so twice. Saving the post then reported "Tag name is required." right next to "You saved the post.", claiming a required field that tags are not; on some versions it produced a critical exception page instead of saving at all; and the blank entry was written into the post's tag list, so every later save of that post failed the same way until the list was repaired by hand. Blank entries never leave the browser now and are dropped again on the server for good measure, and a tag that genuinely cannot be saved is reported as an ordinary admin message and left out of the list instead of corrupting it.
3.6.12 (2026-08-28)
Improvements
- Blog categories admin page works on Mage-OS 3.1 and PHP 8.4 — the Content → Blog MX → Categories page was built with a Magento method that is deprecated and no longer wires the page content on those platforms, leaving the grid missing. It now builds its content through the standard page layout, so the grid renders everywhere.
- Slightly faster post pages — the post's author used to be loaded twice while rendering the Google rich-snippet data, costing an extra pair of database queries on every post view. It is now loaded once.
- Widget templates that print already-rendered HTML (the comments block, the post-list pager, and the admin widget chooser grid) are now explicitly marked as such for the output-escaping scanner. What visitors see is unchanged.
- Corrected the packaged test fixture so its CMS pages carry real page content instead of an empty value, which made Magento log a critical error whenever such a page was rendered.
Fixed
- Fixed a "500 Internal Server Error" on blog pages when a post has no author, or still points to an author who was deleted. The post page (both its social-sharing meta tags and its Google rich-snippet data) and the blog RSS feed all went blank; they now simply omit the author and render normally, while posts with a valid author still show it. Since the RSS feed is on by default and lists your ten newest posts, a single deleted author could take the whole feed down.
- Fixed curated Related posts being replaced by unrelated posts on some store views. When a post's hand-picked related posts are not published on the store view being browsed, the widget used to top the list up with posts that merely share a tag; it now shows only the curated posts visible on that store (possibly none) and never substitutes tag-matched ones. Posts with no curated list still fall back to tag matching as before.
3.6.11 (2026-08-05)
Features
- Related products can now be pulled from a catalog category — the post edit page gains a Related products source selector with three options: Manual (the hand-picked product list, as before), From category (all products of one catalog category), and From Related Products rule (shown only when the Mirasvit Related Products extension is installed). With From category you pick a single Source category and the post's related products block fills itself from that category automatically — no more re-picking products by hand every time the category changes. The block follows the category's own Is Anchor setting (so subcategory products are included exactly as they are on the category page) and its Default Sort By. How many products are shown is set in Stores → Configuration → Blog MX → Related products settings → Number of products from category (12 by default). If the chosen category is later deleted, disabled, or moved out of the store's tree, the block simply doesn't render instead of showing an error.
- Sort order for related products — new Order by (Default, Product name, Price, Creation date) and Direction (Ascending, Descending) fields let you control how the related products are arranged on the post page. Default keeps each source's natural order: for a manual list that is now the exact drag-and-drop order you arranged in the grid, and for a category it is the category's own sort order.
- Per-store-view related products — the related products source, source category, order, direction, and the manual product list itself can now differ per store view. Switch the post to a store view and each of these fields gains the standard Use Default checkbox: leave it on to inherit the global value, or clear it to set something different for that store only. Previously the manual product list was shared by all store views.
Improvements
- ⚠️ Database schema change — the
mst_blog_posttable gains four nullable columns (related_products_source,related_category_id,related_products_order,related_products_direction), andmst_blog_post_storegains the same four plusproduct_idsto hold the per-store overrides (NULLmeans "inherit the global value"). These are applied automatically on upgrade; no manual action is required. - Content Checker notes are now translated — the recommendations on the post's SEO score panel used to leave parts of the sentence in English even on a translated admin (the field name being checked, the word "characters", and the Broken / Working headings). Everything is translatable now, the wording is clearer and consistently punctuated, and translations for all 16 shipped languages were refreshed. The URL-key conflict message and the tag Robots tooltip were also reworded and their stray spacing fixed.
- Related Products rule fields are read-only in a store view — when a post sources its products from a Related Products rule, all five rule settings are now consistently greyed out in a store-view scope (previously two were, three stayed editable) since the rule is a global setting configured in All Store Views.
Fixed
- Fixed a Blog MX Posts widget rendering nothing at all — no title, no posts, no error in the log. It happened when the page had more widget slots than the blog has posts and Prevent duplicate posts in widgets was on: whichever widget rendered last found every post already claimed by an earlier one and silently disappeared. Which widget lost depended on the theme — on Luma the sidebar's Recent Posts, on Hyvä a Related Posts widget placed inside the post body. Duplicate suppression is now dropped for that widget rather than leaving it blank.
- Fixed a "500 Internal Server Error" when opening a blog post URL that points to a post id which no longer exists. Such URLs now return a proper 404 page.
- Fixed the Remove button in the manual related-products list staying clickable in a store-view scope while the list was inheriting the global value, which allowed editing a list that was supposed to be read-only.
3.6.10 (2026-07-23)
Fixed
- Fixed the Template dropdown when configuring a Blog MX widget so it now lists templates from your custom storefront theme, not just the built-in Default one. Previously the theme scan only matched deeper folder paths and missed standard themes (stored as
Vendor/theme), leaving custom templates unavailable to pick.
3.6.9 (2026-07-16)
Fixed
- Fixed a false "URL key already exists" error when two posts share the same URL key but are assigned to different store views. This commonly happens after a Magento 1 migration, where each language has its own post on its own store view. Such posts can now coexist and be re-saved without conflict, while genuine duplicates on the same or global store scope are still blocked. The same fix applies to categories, tags, and authors.
3.6.8 (2026-07-13)
Features
- Per-store author and publish dates — you can now set a different author, publish date, and last-modified date for each store view of a post, while keeping a shared default. On the post edit page the Author and Published on fields (plus a new Last modified on field) gain the standard Use Default toggle when you switch to a specific store view: leave it on to inherit the global value, or turn it off to override it just for that store. The storefront byline, dates, and schema.org data reflect whichever value applies to the store view being viewed.
Improvements
- ⚠️ Database schema change — the
mst_blog_post_storetable gains a nullableauthor_idcolumn, and itscreated_atcolumn becomes nullable, so aNULLvalue means "inherit the global value". These changes are applied automatically on upgrade; no manual action is required.
3.6.7 (2026-07-13)
Features
- Trash (recycle bin) for posts — deleting a post now moves it to a Trash bin instead of removing it for good, so an accidental delete is no longer permanent. A new Content → Blog MX → Trash page (also reachable from the Blog MX flyout menu) lists every deleted post. From there you can Restore a post back to your blog or Delete permanently — one post at a time from the row actions, or several at once with the mass actions. The Delete button on the post edit page now sends the post to Trash as well.
- Automatic Trash cleanup — a new Stores → Configuration → Blog MX → Trash → Retention period (days) setting controls how long deleted posts stay in the bin (30 days by default). A daily cron then removes anything older automatically. Set it to 0 to purge on the next cron run.
Improvements
- Deleted posts disappear from the storefront — posts moved to Trash are hidden from blog listings immediately, and opening a deleted post's old URL directly returns a proper 404. Restoring a post frees its original URL again and brings it back exactly as it was, with its related-post links intact.
- ⚠️ Database schema change — two columns (
is_deleted,deleted_at) are added to themst_blog_posttable to track Trash status. They are created automatically on upgrade; no manual action is required.
3.6.6 (2026-07-13)
Features
- Per-store-view blog layouts — the Layout Editor now lets you design a different blog layout for each store view. A scope switcher at the top of the editor lets you pick which store view you're editing, and a Use Default checkbox keeps a page on the shared Default Config layout until you want to customize it. Previously every store view was forced to share one layout. Single-store setups and existing layouts are unaffected — they keep working exactly as before. The switcher and its confirmation dialogs are fully translated into all supported languages.
Improvements
- Blog pages refresh from cache when layouts change — saving a layout in the editor now clears the relevant full-page cache automatically, so your changes show up on the storefront right away instead of waiting for the cache to expire.
3.6.5 (2026-07-03)
Fixed
- Fixed a "404 Not Found" error when previewing a post while working in the All Store Views scope. The preview link was built for the admin store, which has no storefront, so it never opened. Previews now open on your default storefront and land on the correct post.
3.6.4 (2026-07-02)
Features
- Insert CMS Static Blocks into your blog layout — a new Blog MX: CMS Block widget lets you drop any active CMS Static Block into blog pages from the Layout Editor. Pick the block from a dropdown, and optionally add a frontend title and choose its heading level. Content respects the current store view and is refreshed automatically when the block changes.
3.6.3 (2026-07-01)
Features
- Content Checker admin section — a new Content → Blog → Content Checker page gives you a grid of every post with its overall content-quality score plus a summary overview, so you can see at a glance which posts need SEO work across all your store views. Access is controlled by a dedicated "Content Checker" permission.
- Broken link and broken image checks — the Content Checker now flags posts that contain links pointing to dead pages or images that fail to load, so you can find and fix broken content before customers hit it.
- Score configuration with per-check weights — a new Stores → Configuration → Blog MX → Score configuration section lets you turn each individual content check on or off and set how much weight it carries in a post's overall score, so the score reflects what matters to your store.
- Content Checker REST API — new endpoints let external tools and integrations read content scores, the overall summary, the list of checked posts, and the detailed check results for a single post.
Improvements
- Content scores now calculate in the background — score recalculation runs through the message queue instead of on-page, so saving posts and opening the admin no longer waits on the checks or risks timing out on large blogs. A new console command
bin/magento mirasvit:blog:recalculate(with an optional--missing-onlyflag) queues recalculation; make sure the queue consumer is running to process it. - Content quality tracked per store view — content scores are now stored separately for each store view, so a post can show different results where its content differs between stores. ⚠️ Adds a new database table
mst_blog_post_content_score(created automatically on upgrade). - Content Checker fully translated — all Content Checker labels and messages are now available in every supported language.
3.6.2 (2026-06-27)
Improvements
- Code quality improvements — internal hardening to reduce the chance of edge-case errors.
3.6.1 (2026-06-24)
Features
- Filter the Posts grid by tag — the Tags column in the admin Posts grid now has a filter, so you can narrow the list to posts carrying a specific tag. Previously the column showed tags but gave you no way to filter by them.
Improvements
- Set the "Published On" date per store view — a post's Published On date can now be overridden per store view (with a "use default value" toggle), so the same post can show a different publish date in different store views.
- Mass actions now cover your whole selection — Delete and Change status in the Posts grid now act on every post you select with "Select all", including selections that span multiple pages (minus any you individually deselect), instead of only the posts visible on the current page.
Fixed
- Fixed a database error when filtering the Posts grid by category, tag, or store view with a single value — the grid failed and returned no results. Filtering now works for both single and multiple selections.
- Fixed a bulk status change stopping partway through when one of the selected posts had a duplicate URL key. The grid now reports the problem post by name and continues updating the rest of the selection.
3.6.0 (2026-06-12)
Features
- Enable or disable the blog RSS feed — a new store-scoped setting Stores → Configuration → Blog MX → SEO and URL settings → Enable RSS feed (default: Yes, so existing stores are unchanged). When set to No, the feed at
/blog/rssand/blog/rss/categoryreturns a 404 for that store view and the RSS link is hidden.
Improvements
- Smarter Related Posts — related posts are now ordered by relevance: posts that share more tags with the current post come first, then posts in the same category, then your configured sort order. Previously they were ordered by date only, so the most similar posts now surface at the top.
- Related Posts widget always shows results — on post and product pages the widget now always shows related posts, regardless of the "Use page context as filter" setting. Previously it could appear empty when that setting was off, even though the post edit page listed related posts.
- Clearer Category List tree icons — collapsed parent categories show a triangle that rotates open when expanded, and categories with no children show a neutral marker, instead of every node using the same icon.
- Sort the admin Posts grid by Score — the Score column can now be sorted; previously it had no sort control.
- Edit Author link on the Post edit form — the post edit form now shows an "Edit Author" link under the Author field that opens the author's page in a new tab. It is hidden for posts without an author and for admins who don't have permission to manage authors.
Fixed
- Fixed the Authors admin grid failing with an error when sorting by the Total posts column. Sorting by that column now works, and a previously stuck sort on it recovers automatically.
3.5.1 (2026-05-22)
Fixed
- Fixed Related Products on blog posts showing products from other websites on the storefront. The related products block now respects the current store view's website assignment and hides disabled products, while the admin post edit form continues to show all linked products regardless of store.
3.5.0 (2026-05-18)
Features
- Tree display mode for the Category widget — the Category list widget can now render categories as a collapsible hierarchical tree instead of a flat list. A new context filter option lets the widget show only the branch relevant to the current page (e.g. the current category's descendants).
Improvements
- Storefront and admin interface translations now cover 15 locales: Arabic, Czech, German, Spanish, French, Italian, Japanese, Dutch, Polish, Brazilian Portuguese, Portuguese, Swedish, Turkish, Ukrainian, and Simplified Chinese.
ℹ️ Requires mirasvit/module-comment 1.2.0 or newer. Once installed, blog post comments gain a commenter email field, an optional admin setting to require an email from guests, reply-notification emails for thread participants, and a Comments link in the Blog MX admin page menu.
3.4.3 (2026-04-29)
Improvements
- Added translations for German (de_DE), French (fr_FR), Italian (it_IT), and Ukrainian (uk_UA). Admin panel and frontend text now display in these languages when the corresponding store locale is configured.
- Widget option labels in the admin panel (Yes/No, filter type, sort order, display mode) are now fully translatable.
- Corrected widget names in the admin widget picker: "Rss feed" is now "RSS Feed" and "Table of content" is now "Table of Contents".
Fixed
- Fixed the Related Posts widget rendering as an empty block when a post has no related posts or shared tags — the block is now hidden entirely in that case.
- Fixed breadcrumb links on Hyvä-themed stores: the current-page breadcrumb item (post, category, author, or tag) was linking to a 404 system URL instead of the correct page URL.
- Fixed widget installation failing when theme IDs saved in configuration no longer exist in the database (for example, after a theme is uninstalled or the database is migrated to a fresh environment).
3.4.2 (2026-04-06)
Features
- Per-entity robots control — Each post, category, author, and tag now has its own Robots field in the edit form, letting you set INDEX/NOINDEX and FOLLOW/NOFOLLOW per entity. A new "Default robots for blog pages" setting under Stores Configuration Blog MX SEO sets the default for all blog pages, independently of Magento's site-wide robots setting. ⚠️ Adds a
robotscolumn to theblog_post,blog_category,blog_author, andblog_tagtables — runbin/magento setup:upgradeafter updating.
Improvements
- Compatible with Magento 2.4.9.
- Added a "Show excerpt on post view page" option under Stores Configuration Blog MX Posts. When enabled, the post excerpt is prepended to the post body on the post detail page.
Fixed
- Fixed post count label in the posts list toolbar showing "Items" instead of "Posts".
- Fixed the post preview creating a new database record (and wasting auto-increment IDs) on every click. The preview window is now reused between clicks and no unnecessary database records are created.
3.4.1 (2026-03-06)
Features
- Added "Updated" date display on post pages that reflects when the post content was last changed
- Added a "Posts" tab to the category edit form with the ability to assign and remove posts
Improvements
- Added UTC timezone to structured data dates
- Added configurable description source for structured data (Excerpt or Meta Description)
3.4.0 (2026-03-03)
Features
- Added the ability to limit the number of displayed tags
Improvements
- REST API for blog entities
Fixed
- Fixed blog entities accessible from multiple URLs when a prefixed URL template is configured
3.3.12 (2026-02-11)
Features
- Added configurable structured data settings for blog posts with support for BlogPosting/NewsArticle schema types and optional properties
3.3.11 (2026-01-30)
Fixed
- Fixed x-default hreflang to use the current website's default store instead of the global default store
3.3.10 (2026-01-08)
Features
- Added the “Posts as cards with excerpt” template for the “Posts” widget type
3.3.9 (2025-12-24)
Fixed
- The issue with incorrectly built URLs (includes query params in the middle of the URL)
3.3.8 (2025-12-16)
Fixed
- Added compatibility with the store switcher from Amasty_Shopby
3.3.7 (2025-10-29)
Improvements
- Code quality improved (unescaped output)
3.3.6 (2025-10-21)
Features
- Hyva CMS compatibility
3.3.5 (2025-10-08)
Improvements
- Added modified at date to post
Fixed
- Fixed the issue with focus styles applying outside the blog
3.3.4 (2025-07-23)
Features
- Added the ability to select headings to include in table content
- Added ability to set header level for blog widgets
3.3.3 (2025-07-18)
Improvements
- Composer dependencies updated
3.3.2 (2025-06-27)
Fixed
- Fixed the issue with sliders not working ("Posts as cards" and "Sidebar posts (slider)")
3.3.1 (2025-06-24)
Fixed
- Fixed the issue with missing data in the RSS feed
3.3.0 (2025-06-18)
Features
- Added "Blog MX: Category Link", "Blog MX: Post Link", and "Blog MX: Tag Link" widgets
Improvements
- WCAG 2.2 AA compliance
3.2.8 (2025-04-29)
Improvements
- Ability to use helpful/unhelpful votes for blog posts comments
3.2.7 (2025-04-25)
Fixed
- Fixed the issue with filters on the "All Posts" page in the admin panel
3.2.6 (2025-04-24)
Features
- Ability to use selection rules from the Automatic Related Products extension to set up related products for blog posts
3.2.5 (2025-04-15)
Fixed
- Fixed the issue with sorting when searching for posts
- Fixed the issue where the "Updated At" field changed when viewing a post on the frontend
- Fixed the issue with URL templates for posts, authors, and tags when prefix is enabled, non-prefixed URLs were also accessible
3.2.4 (2025-04-10)
Fixed
- Fixed the issue with sorting the "Updated At" and "Published At" columns on the "All Posts" page
- Comaptibility with Magento 2.4.8
3.2.3 (2025-03-28)
Improvements
- Added "Updated At" and "View Count" columns to the "Posts" listing in the admin panel
3.2.2 (2025-03-20)
Improvements
- Prevented potential warnings and errors when parsing HTML
3.2.1 (2025-03-14)
Features
- Added the ability to apply the "/post/post_path" template to the post URL
Fixed
- Fixed the issue with getting the custom template path inside a theme
3.2.0 (2025-02-28)
Features
- Added the ability to set "YouTube URL", "Instagram URL", and "TikTok URL" for the author
3.1.10 (2024-11-25)
Fixed
- Fixed the issue with the warning “Deprecated Functionality: Creation of dynamic property … is deprecated”
3.1.9 (2024-11-14)
Fixed
- Fixed the issue with new category assigned to incorrect parent category
3.1.8 (2024-11-13)
Features
- Post status: Access by Direct Link (can be protected with password)
3.1.7 (2024-09-12)
Improvements
- Removed dependency on font awesome
- Added table of content widget
3.1.6 (2024-08-23)
Fixed
- Issue with displaying ESI block on blog pages
3.1.5 (2024-08-12)
Fixed
- Saving new widget in layout editor
3.1.4 (2024-08-05)
Improvements
- Skip non-existent themes when running console commands to avoid "theme_dir was not passed" error
Fixed
- Issue with clearing entire cache after saving post
3.1.3 (2024-07-31)
Fixed
- Fixed the issue with excerpt size
3.1.2 (2024-07-31)
Fixed
- Fixed the issue with saving new posts when plugins for the Post model exist
- Meta keywords
- Typo
- Category title in grid
3.1.1 (2024-07-01)
Improvements
- Hyva compatibility improved (Hyva_CmsTailwindJit)
3.1.0 (2024-06-20)
Features
- New comments provider - Mirasvit Comments
3.0.3 (2024-06-17)
Improvements
- Ability to add alternate hreflang to the post, category, author, and tag pages
- Ability to add meta tag "author" for posts
Fixed
- Fixed the issue with Related Posts widget might include current post
3.0.2 (2024-06-05)
Improvements
- Ability to add rel="nofollow" to external links in the Content of Categories and Posts, Post Excerpts, and Author Biographies
3.0.1 (2024-05-31)
Improvements
- Posts listings load time improved (widgets removed before rendering short content)
Fixed
- Fixed the issue with error on saving configurations when All Posts Page disabled
- Layout Editor Firefox save issue
3.0.0 (2024-05-20)
Features
- Multistore Blog
- All Posts Page
Improvements
- Breeze theme support
- Canonical URL for Posts, Categories, Tags, and Authors
Fixed
- Post URL Logic
- Issue with switching layout for category
2.1.2 (2024-05-09)
Fixed
- Issue with preview
2.1.1 (2024-05-08)
Fixed
- Pagination url suffix on blog home page
- Issue with post display after deleting a category
2.1.0 (2024-03-20)
Improvements
- URL templates: Ability to use short/long URLs for categories, posts, authors, and tags.
- URL key generator improved
- URL keys conflict validator
- Open Graph on category pages
Fixed
- The issue with Open Graph description in case if Meta Description is empty
- Show excerpts on post page
2.0.22 (2024-02-21)
Improvements
- Autofilling related posts by tags if there are fewer posts than the limit
- Prevent adding widgets to irrelevant pages (where those widgets have no content)
- Improved posts grid in the admin panel
Fixed
- Fixed the issue with the post data not being saved when attempting to assign the post to the category from a different store
2.0.21 (2024-01-29)
Improvements
- Added estimated read time
- Added reading progress bar
2.0.20 (2024-01-25)
Fixed
- Issue with the number of views if Hide Duplicate settings is Yes
2.0.19 (2024-01-23)
Fixed
- Issue with updating the number of views
2.0.18 (2024-01-22)
Improvements
- Added template for Sidebar posts with slider
- Posts as cards template displays a slider if the number of posts exceeds 2
2.0.17 (2024-01-10)
Fixed
- Fixed the issue with 'Only related posts' filter not working as expected
- Fixed the issue with the comments widget
2.0.16 (2024-01-05)
Fixed
- Pagination on search results page
2.0.15 (2024-01-04)
Fixed
- Alt text for Featured Image
2.0.14 (2023-12-22)
Fixed
- Incorrect links to posts/categories if they are available on several stores
- Issue creating a new category
2.0.13 (2023-12-18)
Fixed
- Subscription form in footer
2.0.12 (2023-12-15)
Improvements
- Hide unused fields in the root category edit form
Fixed
- Sitemap
- Display blog name instead of root category name
2.0.11 (2023-12-14)
Fixed
- 1column layout
2.0.10 (2023-12-13)
Improvements
- Settings for hide/show duplicate posts
2.0.9 (2023-12-05)
Fixed
- Compatibility with php8.2
2.0.8 (2023-11-24)
Fixed
- Page title
- CSS style of related products widget for mobile devices
2.0.7 (2023-11-08)
Fixed
- Issue with duplicating a search phrase from the blog search bar into the main search bar
- Translation of publication date
2.0.6 (2023-10-24)
Features
- Show posts from all child categories in a category
2.0.5 (2023-10-19)
Fixed
- Applying a custom template
2.0.4 (2023-10-12)
Improvements
- CSS classes by template type added to widgets' templates
2.0.3 (2023-10-11)
Improvements
- Page and Widget types' labels in Layout Editor
Fixed
- Fixed the issue with Rich Snippets for blog posts
- Fixed the issue with posts' OpenGraph tags
2.0.2 (2023-10-05)
Improvements
- AddThis sharing buttons replaced with AddToAny sharing buttons
- Small improvements in Categories and Posts grids
2.0.1 (2023-10-04)
Improvements
- Templates preview
2.0.0 (2023-09-29)
Features
- Layout Editor
- Widget-based frontend blog pages
Notice
- Frontend pages of the blog are now built using Magento Widgets
- All blocks on blog frontend pages are widgets
- All old widget classes are removed from the extension and all existing blog widgets will be removed from the store during the extension's update
- Templates' customizations of the extension prior to version 2.0.0 will no longer work but should not cause any issues
1.3.2 (2023-08-25)
Fixed
- Links to categories in the menu
1.3.1 (2023-07-07)
Fixed
- Content checker
1.3.0 (2023-07-07)
Improvements
- Redesign
Fixed
- Widget option "Display post images" not working
1.2.25 (2023-06-21)
Improvements
- Ability to choose url suffix (none, slash, custom)
Fixed
- Pagination
1.2.24 (2023-05-03)
Improvements
- Added website to author's social profiles
1.2.23 (2023-04-24)
Fixed
- Scoring for the first keyword
1.2.22 (2023-03-13)
Improvements
- Removed inline post editor
Fixed
- Issue with deleting author
1.2.21 (2023-01-26)
Improvements
- Increased maximum content size to 16MB
- Added support of Magento 2.4.6
Fixed
- Assign post to Root Category by default
1.2.20 (2022-12-26)
Fixed
- Translation "About author"
- Displaying a disabled category
1.2.19 (2022-12-22)
Improvements
- Thumbnail Size settings
Fixed
- Mass action Change status
1.2.18 (2022-12-09)
Fixed
- Filter by store in sitemap
1.2.17 (2022-12-08)
Features
- Add posts and categories to sitemap
1.2.16 (2022-11-24)
Fixed
- Issue with blank preview page when reopening.
- Page not found for Post/Category in first level if option Use subcategories is enabled.
- Pagination
- Double slash in url
1.2.15 (2022-10-24)
Features
- Use subcategories in Url
1.2.14 (2022-09-30)
Fixed
- Category is not visible in any store where this post is visible
1.2.13 (2022-09-22)
Fixed
- Compatibility with php8.1
1.2.12 (2022-09-19)
Fixed
- Compatibility with Page Builder
1.2.11 (2022-09-08)
Fixed
- Issue with root category
1.2.10 (2022-08-04)
Fixed
- Category links in breadcrumbs
1.2.9 (2022-07-27)
Improvements
- Ability to use different base urls for different store views
1.2.8 (2022-07-05)
Fixed
- Disabled the ability to change the position of an element in Related Posts and Related Products on the post edit page.
1.2.7 (2022-07-04)
Fixed
- "Table or view not found" error on update.
1.2.6 (2022-06-29)
Fixed
- Preventing the creation of unused tables during installation
1.2.5 (2022-06-23)
Improvements
- Ability to disable Related Posts on Product page
1.2.4 (2022-06-20)
Improvements
- remove db_schema_whitelist.json
1.2.3 (2022-06-14)
Fixed
- Fixed the issue with categories and posts not migrated from eav tables
1.2.2 (2022-06-01)
Fixed
- Public access to the draft is forbidden
1.2.1 (2022-05-25)
Fixed
- Issue with Add Related Products if more than one Inventory Source is configured
1.2.0 (2022-05-23)
Improvements
- migrate to declarative schema
1.1.28 (2022-05-12)
Fixed
- Dependencies
1.1.27 (2022-05-10)
Fixed
- Issue on Post page when using cache
1.1.26 (2022-05-09)
Fixed
- Issue with Related Products block style
- Compatibility with Magento 2.3.3. and below
1.1.25 (2022-04-08)
Fixed
- RSS filter by category
1.1.24 (2022-04-05)
Improvements
- Reduced thumbnail size
1.1.23 (2022-02-14)
1.1.22 (2022-02-14)
Fixed
- Issue after delete category
1.1.21 (2022-02-04)
Fixed
- Image alt tag
1.1.20 (2022-01-27)
Improvements
- Style
1.1.19 (2022-01-27)
Fixed
- Issue with content checking
1.1.18 (2022-01-21)
Features
- Sorting posts by update date
- Views counter
Improvements
- Content checker
1.1.17 (2022-01-18)
Features
- Rich snippet
Improvements
- Added meta keywords
Fixed
- Pagination style
1.1.16 (2021-12-17)
Improvements
- Checking fields
1.1.15 (2021-12-15)
Fixed
- Issue with editing post tags
1.1.14 (2021-12-08)
Fixed
- Issue with post save if Single-Store Mode is enabled
1.1.13 (2021-10-20)
Fixed
- Compatibility with Magento Page Builder
1.1.12 (2021-09-29)
Improvements
- compatibility with third party Page Builder
1.1.11 (2021-09-20)
Fixed
- Issue when changing status via massaction for Magento 2.3
1.1.10 (2021-09-14)
Fixed
- Issue wiht rss
1.1.9 (2021-09-14)
Fixed
- Issue when changing status via massaction
1.1.8 (2021-09-07)
Fixed
- Issue with Page Buider for Magento 2.4.3
1.1.7 (2021-06-30)
Fixed
- Issue after delete author,post,category
- Issue after save author,post,category
1.1.6 (2021-06-15)
Fixed
- Clean cache on post/category/author save/delete
1.1.5 (2021-06-09)
Fixed
- Fixed the issue with upgrading extension from free Blog extension
1.1.4 (2021-06-04)
Improvements
- Added id and sort order columns on categories page
Fixed
- Issue with display post if featured image not set
1.1.3 (2021-05-25)
Improvements
- Ability to enable/disable link in the footer
1.1.2 (2021-05-14)
Fixed
- Fixed the issue with not displayed selected store in tag form if 'All Store Views' selected
1.1.1 (2021-04-29)
Fixed
- Magento EE PageBuilder compatibility
1.1.0 (2021-04-27)
Features
- Ability to manage Authors
- Ability to manage Tags
- Full multistore support (Posts, Categories, Authors, Tags)
- Different display modes for post and post list pages
- New widgets (2 types, old widgets will be removed)
- Ability to duplicate posts
- Open Graph meta tags for posts (generated automatically)
1.0.6 (2021-02-15)
Fixed
- rss
- save post without date
1.0.5 (2021-01-19)
Fixed
- Minor fixes
1.0.4 (2021-01-16)
Fixed
- Issue with templates
1.0.3 (2020-12-31)
Fixed
- Stored "Store View" does not show in the form (m2.4.1)
1.0.2 (2020-12-30)
Fixed
- Error "Type Error occurred when creating object: Mirasvit\BlogMx\Block\Catalog\RelatedPosts ..."
- Error "TypeError: Return value of Mirasvit\BlogMx\Model\ConfigProvider::getCommentProvider() ..."
1.0.1 (2020-12-18)
Fixed
- Minor fixes
1.0.0 (2020-12-11)
Features
- Initial release