- Fix: the plugin required PHP-DI 7, which needs PHP 8.0, while MSLS itself declares PHP 7.4 as its minimum. PHP-DI is back on the 6.4 series, so an installation on PHP 7.4 can resolve the dependencies again.
- Internal: declare
Requires PHP: 7.4in the plugin header so WordPress blocks activation on older PHP versions, and check the production dependencies against PHP 7.4 in CI.
- Fix: opening the settings page on a blog with more users than the "Reference user" dropdown shows raised a PHP notice, which landed in the error log and in services such as Sentry. The limit is now reported as a hint below the dropdown, where it belongs.
- Internal: detect the truncated user list from the query itself instead of calling
count_users(), which drops a costly query from the settings page on blogs with many users.
- Fix: the WordPress.org deploy pushed the whole workspace instead of the built distribution.
- No changes to the plugin itself - the shipped code is identical to 3.0.0.
- Add Quick Create for translations: create the translated post straight from the editor metabox, or pick a source post on the new "Add from Translation" submenu (single and bulk), backed by a REST endpoint and switchable in the settings.
- Add
msls_quick_create_capabilityso integrations can override the Quick Create permission checks, plus filters for the post data, the inserted post, the response, the untranslated-posts list, and the mapped taxonomy terms. - Add filter hooks for the AJAX suggest results of the post and term metaboxes.
- Restructure
lloc\Msls\into per-concern sub-namespaces (Admin\,Blog\,ContentImport\,ContentTypes\,Frontend\,Link\,Options\,Registry\,RestApi\). Every former flatMsls*class name keeps working throughlloc\Msls\Compat\Aliases, registered fromincludes/aliases.php. - Move the public helper functions into
includes/api.phpand make the$attrargument ofmsls_get_switcher()optional. - Add a PHP-DI container for service construction, built on first use by
lloc\Msls\Container::get(). - Documentation: add a developer reference under
docs/(public API, hooks, snippets, end-to-end testing, acknowledgements) and refresh the class and package diagrams. - Fix: load the backwards-compatibility aliases and the
msls_*()functions when the plugin file is included instead of onplugins_loaded, and keep the settings page slug handed tomsls_admin_registerat its pre-3.0 value. Add-ons such as MslsMenu load before the plugin and checkclass_exists( 'lloc\Msls\MslsOptions' )before registering anything, which silently disabled them — no add-on settings section, and no switcher in the nav menu. - Fix: check authorization on the destination post during content import, and correct the ContentImporter permission and post type checks.
- Fix: do not fall back to
home_url()for taxonomy and query archives. - Fix: broken links on the page for the latest posts.
- Fix: several issues in the blog collection.
- i18n: close gaps in the WP-CLI messages and the Quick Create button title.
- Internal: strict typing throughout, PHPStan level 8 clean,
ABSPATHguards, Plugin Check and PHPCS findings addressed, wp-env setup for local multisite development. - Internal: add a Playwright end-to-end suite (admin, frontend and visual specs against wp-env, plus a read-only
livesmoke test) and run the local project on every pull request. - Maintenance: numerous dependency updates.
- Fix: Deprecated function warning pointed to non-existent function.
- Documentation: update README.md code snippets to reflect new function names.
- Add prefixed public helper functions (msls_get_*, msls_the_switcher) with deprecation shims for legacy names to satisfy WPCS while staying backward compatible.
- Expose action hook names as constants for safer programmatic use.
- Accessibility: add aria-current="page" on the active language link.
- Fix: resolve path-related issue affecting asset/loader resolution.
- Internal: reorganized folders for clearer structure; include composer.json in release artifacts.
- Maintenance: numerous dependency updates (WordPress build tooling, Playwright/e2e utils, Node types, security bumps such as tar-fs, dotenv, js-yaml, express).
- Alternate links are now printed without the title attribute.
- Fix in ImportCoordinates
- Importer base and ImportCoordinates tested and refactored by @lloc in #402
- Components fixed
- Fix: type casting for msls_id in render_option call
- Bugfix Welsh css flag
- Addressed some of the errors that were reported by PHPStan
- Upgrade of PHPUnit to version 10
- Raise coverage
- Plugin check workflow added and existing workflows updated
- Updated JS dependencies
- Fix for build script
- Security fixes
- Fix double output
- Suggest Field in Post Editor Metabox: This feature allows you to input either numeric or alphanumeric values. If you enter a number, it’s treated as a Post ID. If you enter text, the field will suggest posts with matching titles.
- Gato GraphQL integration with 3 new functions: msls_get_post, msls_get_tax and msls_get_query
- Bugfix - missing action call
- Bugfix: Content filter
- Bugfix: Category link
- Bugfix: Filter _GET request
- lots of bugfixes, testing & refactoring
- Plugin Check issues addressed
- flags/labels in the adminbar works now for every user-role
- Block reorganized
- WordPress' compatibility changed to min 6.1
- PHP code-beautifier added
- WordPress 6.5 tested
- WooCommerce product categories regression fixed by @nowori
- Links to translate.wordpress.org added by @patriciabt
- lots of code improvements in tests and codebase
- Style loading in admin_bar reviewed
- Prevention of double output in taxonomy edit-screens
- CSS fix for fields in meta-boxes
- Fixes in code and documentation
- New API function
msls_blog( string $locale ): ?MslsBlog; - New API function
msls_blog_collection(): MslsBlogCollection; - Text labels of languages in the backend
- Set PHP 7.4 as minimum requirement
- Set WordPress 5.6 as minimum requirement
- Blavatar fix
- CodeSniffer installed for compatibility check with PHP 8.1
- CSS/SVG Flags refreshed
- WordPress 6.3 tested
- Compatibility issue with PHP 8.1 regarding FILTER_SANITIZE_STRING
- Compatibility issue with E_NOTICE and PHPUnit 10
- Avoid notice on Appearance > Widgets admin page
- Language files reviewed
- Legacy tests removed
- Fix #192 MslsCustomColumn/MslsAdminIcon fatal error (props @nelgmo)
- Fix #184 - use type of post and not only request (props @arnowelzel)
- Adding filters for customizing the "hreflang" output in the page header (props @jacksoggetto)
- Improvements in code quality
- Secondary buttons from MetaBoxes removed
- Flags refreshed
- Tested with 5.9
- Bugfix for request
[...]
- First version