= Changelog archive =

This is an archive of older changelog entries. Most recent entries are maintained in readme.txt

= 3.1.5 =

Release date: 24 September 2026

**Added**

* Added TranslatePress support for Knowledge Base REST responses, search results and related articles.

**Changed**

* Improved accessibility of the settings screens.
* [Pro] The GitHub importer now accepts `heading_depth` and `min_headings` in `[toc]` markers, and exports keep complex tables as HTML.
* Blank product, section and tag slugs now fall back to their defaults, and a blank Knowledge Base slug with a blank article permalink structure places articles at the site root.

**Security**

* Hardened the escaping of thumbnail width and height attributes.

**Fixed**

* [Pro] Custom article permalink structures made regular posts show the blog index and could capture page, tag and pagination URLs.
* [Pro] Custom permalinks returned 404s or were ignored for blank Knowledge Base slugs, articles missing a term, term feeds and pagination, and structures such as `docs/%postname%`.
* Feeds showed the wrong content when the Knowledge Base slug was blank.
* Cached Knowledge Base output and REST responses could serve content from another language on multilingual sites.
* Fixed PHP 8.6 deprecation notices.

= 3.1.4 =

Release date: 5 September 2026

**Added**

* [Pro] Added the `%product_id%` placeholder for product, section, and article permalink structures. Product and section IDs resolve to their corresponding taxonomy terms, including hierarchical sections.

**Changed**

* [Pro] Invalid product and section IDs now return a 404 response instead of falling back to another Knowledge Base archive.

**Fixed**

* Fixed plugin data being deleted when uninstalling one version while its paired free or Pro counterpart was active.
* [Pro] Fixed the `%section_id%` placeholder generating the wrong query variable, which caused section URLs to load the wrong archive or return a 404.
* [Pro] Fixed custom permalink settings using stale rewrite rules immediately after they were saved. Rewrite rules now flush after the new settings have been registered.

= 3.1.3 =

Release date: 26 August 2026

**Changed**

* [Pro] GitHub commit messages generated when pushing articles are now prefixed with `docs: ` so they follow conventional commit style in the target repository.
* [Pro] The GitHub importer now skips Markdown files that have no frontmatter, and files whose frontmatter sets `kb_exclude: true`. An article that was imported earlier and is later marked `kb_exclude` is drafted or deleted according to the mapping's "When a File is Deleted" setting. Excluded files are reported in the import wizard results and counted separately.
* [Pro] GitHub bulk exports now use Git Trees content uploads, prepare bounded chunks with progressive table updates, create one commit per repository and branch, and resume safely after an interruption.
* [Pro] A GitHub export now resumes automatically when the wizard page is reloaded while an export is still running.
* [Pro] The GitHub import and export results tables now show a Product column, so you can see which product each article belongs to.
* Updated the Settings API framework, Options API and admin notices API to their latest versions.
* PHP compatibility checks now cover PHP 7.4 to 8.6.
* Updated npm dependencies.

**Fixed**

* Fixed checkbox settings resolving to `true`/`false` instead of `1`/`0` when read before their saved value existed, which could break blocks and REST responses that expect a numeric value.
* Fixed `Custom CSS` returning `false` instead of an empty string when no value had been saved.
* Fixed the `wzkb_settings_defaults` filter being ignored when a default was read outside the admin area.
* Fixed settings on a multisite network reading another site's values in the same request after a `switch_to_blog()` call, such as during network activation.
* Fixed the settings wizard silently dropping repeater field rows on save.
* [Pro] Fixed the GitHub export wizard preview using post timestamps instead of generated Markdown, which could omit articles that were later pushed.
* [Pro] Fixed empty article exports from being hashed or sent to GitHub.
* [Pro] Fixed the GitHub exporter attempting to push articles whose post no longer exists; such articles are now reported in the results table and the rest of the export continues.
* [Pro] Fixed the GitHub exporter writing documented shortcodes as literal text, so re-importing an article executed them — a heading reading `[bsearch_form]` came back as a working search form. Literal shortcodes are now written in the `[[shortcode]]` form, which WordPress renders as text and which survives the round trip. Only registered shortcode tags are escaped, so WP-CLI notation such as `[--force]` and placeholders such as `wzkb_rated_[article_id]` are left untouched.
* [Pro] Fixed the GitHub exporter dropping `order: 0` from the frontmatter, which made push-back non-idempotent and produced a diff against the repository even when nothing about the article had changed.

= 3.1.2 =

Release date: 16 August 2026

**Changed**

* Updated the Settings API framework.

**Fixed**

* Fixed a fatal error ("There has been a critical error on this website") that could occur when Pro features were activated — e.g. on starting a free trial or activating a license — on sites whose saved settings predate the floating table of contents option.
* Fixed a fatal error when Knowledge Base and Knowledge Base Pro were activated together by namespacing the function-existence guard for the main instance and guarding the autoloader and settings includes.
* Fixed the Settings page sidebar overlapping the tab content by switching the post body layout to flexbox.
* Fixed disabled and Pro-gated settings losing their stored values on save when their field was not submitted.

= 3.1.1 =

Release date: 21 July 2026

**Added**

* Added search to the Settings page to quickly find options across tabs.

**Changed**

* Smooth scroll-to-top when switching Settings tabs.
* Updated Settings API to 2.10.1 and refreshed the admin banner.
* Updated Freemius SDK to 2.13.4.
* Updated WordPress.org banner images.

**Fixed**

* Fixed default-value label lookup for select/radio fields that use an empty string as a real option key (e.g. "Do not display").
* [Pro] GitHub/Markdown exporter: unknown block types without inner blocks now export raw innerHTML instead of a block comment, so they round-trip correctly on re-import.
* [Pro] GitHub/Markdown exporter: pass `<mark>`, `<u>`, `<sub>`, `<sup>` through as raw HTML during inline conversion, and allow `future` as a valid frontmatter/mapping post status.
* [Pro] GitHub/Markdown exporter: emit the `toc: true` frontmatter flag when an article contains a TOC block, for full importer/exporter parity.

= 3.1.0 =

Release date: 9 July 2026
Release post: https://webberzone.com/announcements/knowledge-base-v3-1-0/

**Added**

* [Pro] Documentation Layout Mode: three-column docs site layout with a sticky, collapsible section-tree sidebar, article content area, and on-this-page TOC rail. Enable via Settings → Pro. Works on all KB page types (home, product, section, single article, search).
* [Pro] Section Tree block (`knowledgebase/section-tree`) and sidebar widget: context-aware hierarchical navigation tree displaying products, sections, and articles with collapsible accordion and active-item highlighting. Adapts automatically to the current product, section, or article page.
* [Pro] GitHub Integration: sync markdown documentation between GitHub repositories and the Knowledge Base via webhooks, with YAML frontmatter, markdown-to-Gutenberg conversion, and HMAC signature verification. Import and export are combined into a single Importer/Exporter page, with featured image support and a post-import next-actions panel.
* [Pro] Article Export & Import: export articles as a Markdown ZIP, SQL dump, or XLSX spreadsheet, and re-import Markdown ZIPs (matched by slug) to restore or migrate.
* [Pro] Term featured image support for product and section archives.
* Plugin Importer: migrate articles, sections, products, and tags from BasePress, BetterDocs, and Echo KB.
* Settings Export & Import: back up and restore plugin settings as JSON, with sensitive keys preserved on the existing site.
* Sample content: import demo articles, sections, and products from the Setup Wizard or Tools page, removable in one click.
* Added `wzkb_tag` taxonomy templates, displaying tag terms on single articles and tag archives.

**Changed**

* [Pro] Floating TOC now slides in horizontally from the viewport edge instead of collapsing vertically.
* Reorganized admin navigation and added a Settings button to the admin banner.
* Upgraded Tom Select to v2.6.1.

= 3.0.1 =

* Bug fixes:
	* Fixed TOC links not scrolling to headings when the inline TOC is disabled — heading anchor IDs are now injected for the floating TOC, sidebar widget, and TOC block. Existing IDs set by third-party TOC blocks (e.g. Kadence, Stackable) are preserved.
	* Fixed the TOC block rendering without container styling in all themes.

= 3.0.0 =

Release post: [https://webberzone.com/announcements/knowledge-base-v3-0-0/](https://webberzone.com/announcements/knowledge-base-v3-0-0/)

* Features:
	* Introduced a hierarchical Products taxonomy (`wzkb_product`) for multi-product knowledge bases.
		* Migration wizard with dry-run and batch processing to map existing sections and articles to products.
		* Product-based frontend templates that preserve section hierarchy.
		* Admin UI enhancements for managing products, sections, and migration.
	* Setup Wizard to guide users through the initial configuration.
	* New Product widget to display sections for a specific product.
	* Block Templates and Patterns:
		* Full Site Editor (FSE) support with custom block templates for Knowledge Base layouts.
		* Pre-designed block patterns including single article, archives, sections, products, and sidebar layouts.
		* Sidebar pattern with search, sections, products, and recent articles for easy navigation.
		* Templates work with both classic and block themes.
	* Auto-generated Table of Contents for Knowledge Base articles: parses headings (H2–H6), injects anchor IDs, and renders a nested linked TOC above article content.
		* Configurable heading depth (H2–H6), minimum heading count threshold, and custom title text.
		* WPML and Polylang support for TOC title translation.
		* Filter `wzkb_toc` to customize the generated HTML.
		* Public helper functions `wzkb_get_toc()` and `wzkb_toc()` for template use.
		* [Pro] TOC widget, block and floating widget.
	* Live search suggestions for the Knowledge Base search form, with AJAX results, keyboard navigation, and accessible screen reader support.
	* [Pro] Custom permalinks for Products, Sections, Tags, and Articles.
	* [Pro] Cache tools: Clear cache button and cache expiry option in the Settings page.
	* [Pro] Flush permalinks button in the Settings page.
	* [Pro] Knowledge Base Homepage Mode: Display the Knowledge Base on your site homepage, and redirect the Knowledge Base archive URL to the homepage.
	* [Pro] Article Rating System:
		* Binary or 5-star voting, optional follow-up feedback, shortcode support, and Tools page controls.
		* Multiple tracking methods (none, cookie, IP, cookie + IP, logged-in users) with hashed IP storage for GDPR compliance.
		* Email alerts, per-article reset tools, feedback storage, privacy exporter/eraser, and Bayesian average sorting in admin lists.
	* [Pro] Floating Help Widget providing a branded assistant with live search, suggested articles, configurable labels/colors, and a contact form with HTML email notifications.
	* [Pro] Premium layout pack with seven additional frontend styles (Modern, Minimal, Boxed, Gradient, Compact, Magazine, Professional).

* Modifications:
	* Standardized CSS class names to use consistent hyphenation (e.g. `wzkb_section` → `wzkb-section`). If you have custom CSS targeting the old class names, you'll need to update your stylesheets.
	* Added `Hooks_Registry` class to organize hooks and prevent accidental duplicates.
	* Upgraded the WebberZone Settings API.
	* Media Handler now supports the FIFU WordPress plugin for featured image detection.
	* Knowledge Base Block will dynamically load the global settings when first inserted.

* Breaking Changes:
	* CSS classes have been renamed for consistency, for example:
		* `wzkb_section` → `wzkb-section`
		* `wzkb_section_wrapper` → `wzkb-section-wrapper`
		* `wzkb_section_name` → `wzkb-section-name`
		* `wzkb_section_count` → `wzkb-section-count`
		* `wzkb_shortcode` → `wzkb-shortcode`
		* `wzkb_block` → `wzkb-block`
		* and other similar class name changes.
	* If you have custom CSS targeting these classes, please update your selectors.

= 2.3.2 =

* Bug fixes:
	* Fixed security issue where Knowledge Base slug in settings was not sanitized.

= 2.3.1 =

* Bug fixes:
	* Fixed security issue where arguments passed to the shortcodes were not properly sanitized.

= 2.3.0 =

Release post: [https://webberzone.com/blog/knowledge-base-v2-3-0/](https://webberzone.com/blog/knowledge-base-v2-3-0/)

The plugin has been completely rewritten to use classes and autoloading.

* Features:
	* New block: Knowledge Base Articles.
	* New block: Knowledge Base Breadcrumbs.
	* New block: Knowledge Base Sections.

* Modifications:
	* Enhanced breadcrumb navigation with semantic HTML5 markup and improved accessibility
	* Added Schema.org BreadcrumbList markup for better SEO
	* Added support for custom Unicode separators in breadcrumbs

= 2.2.1 =

* Enhancements:
	* The plugin will now load RTL styles if your site is in RTL mode.
	* Only load CSS on the frontend if the option is enabled in the Settings page.

* Bug fixes:
	* Fixed a security issue in the alerts block that impacted edge cases of stored data from contributors. Now the alert block content is passed through `wp_kses_post` before being displayed.
	* Fixed a bug where the block would not render correctly in the editor

= 2.2.0 =

Release post: [https://webberzone.com/blog/knowledge-base-v2-2-0/](https://webberzone.com/blog/knowledge-base-v2-2-0/)

* Enhancements:
	* The plugin will now look for templates within `wp-content/knowledgebase/templates` folder if it is not found within the existing theme before using the plugin's included templates
	* Alerts block now shows a preview and the Default style is inserted correctly
	* Upgrade settings handling to use the WebberZone Settings_API class
	* Knowledge Base block is wrapped in the `<Disabled>` component which prevent any accidental clicking when you're using it in the block editor (Gutenberg)

= 2.1.2 =

* Security fix in block

= 2.1.1 =

Release post: [https://webberzone.com/blog/knowledge-base-v2-1-0/](https://webberzone.com/blog/knowledge-base-v2-1-0/)

* Enhancements:
	* New options to set number of articles and to show excerpt in the widget

* Bug fixes:
	* Update activation on multisite when a new blog is added
	* PHP errors when using the widget

= 2.1.0 =

* Features:
	* New related articles module. Enable/disable in the settings page
	* New Gutenberg block for alerts. Original knowledge base block has been upgraded to use block.json

* Enhancements:
	* `wzkb_knowledge` function takes additional parameters that override global settings if passed
	* Additional settings added for Knowledge Base block

* Bug fixes:
	* Fixed Custom CSS loaded incorrectly with a 0 on install/reset
	* Dashicons were not properly loaded on frontend

= 2.0.1 - 14 June 2020 =

Release post: [https://webberzone.com/blog/knowledge-base-v2-0-0/](https://webberzone.com/blog/knowledge-base-v2-0-0/)

Bug fixes:
	* PHP notice when not using the Gutenberg block
	* Invalid ID error when browsing the Knowledge archives

= 2.0.0 - 12 June 2020 =

Release post: [https://webberzone.com/blog/knowledge-base-v2-0-0/](https://webberzone.com/blog/knowledge-base-v2-0-0/)

* Enhancements:
	* New Gutenberg block - search for Knowledgebase or KB
	* Implemented CodeMirror to format custom styles box

* Bug fixes:
	* CSS navigation classes for navigation was wrong

= 1.9.0 - 25 January 2020 =

Release post: [https://webberzone.com/blog/knowledge-base-v1-9-0/](https://webberzone.com/blog/knowledge-base-v1-9-0/)

* Features:
	* Three new widgets added: WZKB Articles, WZKB Sections and WZKB Breadcrumbs
	* New template to display single articles that fits with the rest of the knowledge base views. You can override this by creating a `single-wz_knowledgebase.php` file in your theme's folder
	* New sidebar registered by the plugin which can be used to display widgets with the included templates. You can enable the sidebar in the Settings page
	* New option to limit the number of posts being displayed in each category before a "Read more" link is displayed. Customize the read more by filtering `wzkb_excerpt_more`

* Enhancements:
	* Renamed the archive and taxonomy templates to `archive-wz_knowledgebase.php` and `taxonomy-wzkb_category.php` respectively in line with the WordPress template standards. If you were already using `wzkb-archive.php` or `wzkb-category.php` then please rename these
	* Stylesheet file renamed to wzkb-styles.min.css

= 1.8.0 - 14 September 2019 =

Release post: [https://webberzone.com/blog/knowledge-base-v1-8-0-introducing-caching/](https://webberzone.com/blog/knowledge-base-v1-8-0-introducing-caching/)

* Features:
	* New option to enable the internal cache. Saving the settings page will delete the cache

= 1.7.0 - 12 February 2019 =

* Features:
	* New shortcode `[kbalert]` to display alerts / informative messages similar to [Bootstrap](https://getbootstrap.com/docs/4.3/components/alerts/). The types of alerts are primary, secondary, success, danger, warning, info, light and dark
	* New Output option to display empty sections
	* New option to display sidebar with the default templates

* Bug fixes:
	* Checkboxes on the admin page will now properly indicate their status for new options that aren't saved yet

= 1.6.0 - 5 December 2018 =

* Features:
	* New functions to add breadcrumbs - Use `wzkb_breadcrumb` to display the breadcrumb. `wzkb_get_breadcrumb` _returns_ the breadcrumb and `[kbbreadcrumb]` is the corresponding shortcode
	* The default category and archive templates now display the breadcrumb below the search bar
	* New option to set the title of the knowledge base. Find it under the Options tab under Settings

* Enhancements:
	* Support for Gutenberg/Block Editor in WordPress 5.0

= 1.5.0 - 6 August 2017 =

* Features:
	* New option to set the number of columns to display the knowledge base archives
	* New option to set what section level should the knowledge base start from. Ideal if you want to have separate knowledge bases for multiple products
	* New option to show excerpt below the link. Contributed by [@border0464111](https://github.com/border0464111)
	* New option to turn off the section link. Contributed by [@border0464111](https://github.com/border0464111)
	* New option to show the number of articles in an orange circle next to the header. You can override the color by styling `wzkb_section_count`
	* New function `wzkb_get_default_option()` to retrieve the default setting

* Enhancements:
	* Make nested wrapper. Contributed by [@border0464111](https://github.com/border0464111)
	* Settings page is now a tabbed interface using jQuery without needing to reload the page
	* Modified checkbox settings are indicated in the Settings page
	* Added the number of articles in "At a Glance" widget in the WordPress Dashboard

* Bug fixes:
	* Fixed several settings API functions

= 1.4.0 - 22 April 2017 =

* Features:
	* New options to disable the KB feeds and include articles in the main feed
* Enchancements:
	* Force the two column layout and prevent overlaps

= 1.3.0 - 4 December 2016 =

* Enhancements:
	* Articles now support comments
	* Two new settings to delete all settings and Knowledge base content when deleting the plugin.

* Bug fixes:
	* Fixed labels where Section was still called Category

= 1.2.0 - 24 January 2016 =

* Features:
	* Settings page: Customize the slugs, disable styles, etc. Change in base slug from `kb-articles` to `knowledgebase`. If you're upgrading this plugin, and have previously used `knowledgebase` as the slug for the page you created, then either change the slug for the knowledge base in the Settings page or delete the page you created.
	* Shortcode to display the Knowledge base search form - Use `[kbsearch]` for this purpose

* Enhancements:
	* Merged archive stylesheet with the main stylesheet
	* Hide the first level header when displaying archives

* Bug fixes:
	* Undefined index notice on Search results pages outside of the knowledge base

= 1.1.0 - 29 June 2015 =
* Features:
	* Network activate now works on multisite
	* Main archive displays the knowledge base. You can override the default template by adding a file `archive-wz_knowledgebase.php` in your theme folder
	* Category archive displays the knowledge base for the specific category. You can override the default template by adding a file `taxonomy-wzkb_category.php` in your theme folder
	* Major rewrite of knowledge base HTML markup and default styles. If you're using your own custom styles, then you will need to remove

* Enhancements:
	* Custom post type slug changed to `knowledgebase` from `wzkb`
	* Custom post type archives and category archives changed to `kb-articles`. Tag archives changed to `kb-tags`
	* Duplicate code cleanup

* Bug fixes:
	* If term has no children terms, then directly display the articles under it

= 1.0.0 - 17 May 2015 =
* Initial release
