- Maintenance release with support for PHP 8.1, security enhancements, general improvements and bug fixes.
- Security: Fix reported cross-site scripting issue relating to article preview CSRF token (many thanks, Paul Ritchie at Pentest Limited).
- Fixed: More robust numeric searches.
- Fixed: Improved query efficiency of category operations.
- Fixed: Required parameters after optional in tag builder (thanks, @phiw13).
- Fixed: Admin-side pagination when sorting by non-unique values.
- Added: PHP 8.1 support.
- Added: Natural search mode.
- Added: Random form selection.
- Added: Support for AVIF image format, on PHP 8.1 or higher.
- Added: Global
limit
,offset
andsort
attributes. - Added:
url_title
attribute to<txp:article[_custom] />
. - Added:
range
attribute to<txp:article_image />
. - Added:
date
andtime
attributes to<txp:if_expired />
. - Added:
calendar
attribute to<txp:posted />
and similar tags. - Added: Substring extraction via
escape
attribute. - Added:
<txp:items_count />
tag. - Added: Expanded conditional
match
attribute with comparison operators. - Added:
UTC
is now a permitted time zone. - Added: Custom date formats.
- Changed:
<txp:category_list />
withchildren
>1 attribute behaviour. - Changed: Global
escape
attribute operates at the items level in lists. - Changed: Multi-site plugins directory defaults to
site/admin/plugins
. - Accessibility: Additional
aria-label
attributes for some internal links. - Internal: Removed
FOUND_ROWS()
which is deprecated in MySQL 8.0.17. - Internal: Prefer
is_readable()
andis_file()
tofile_exists()
. - Developer: Added plugin lifecycle events
upgraded
anddowngraded
. - Developer: Export new article IDs on duplicate.
- PrismJS 1.26.0.