Co-Authors Plus 4.0.0
Breaking changes:
- Block editor data store replaced. The custom
cap/authorsRedux store has been removed. Third-party JavaScript that callsselect( 'cap/authors' )must migrate to WordPress's core entity store (getEditedPostAttribute( 'coauthors' )/editPost( { coauthors: [...] } )). This change is what makes Co-Authors Plus compatible with real-time collaboration. - Deprecated filter hooks.
coauthors_post_list_pluck_fieldandcoauthors_post_get_coauthor_by_fieldare deprecated when saving via the REST API. Use theset_object_termsaction for the author taxonomy instead. Both filters still fire for now but emit a_deprecated_hooknotice and will be removed in a future release. - Guest-author post type is now private. The
guest-authorCPT is now registered withpublic => false(withshow_ui => trueto preserve the admin editor). Any front-end queries for?post_type=guest-authorwill stop resolving. This was never a supported path, but the change makes the intent explicit and closes a long-standing leak into plugins like Yoast SEO that scan for public post types. COAUTHORS_PLUS_PATHandCOAUTHORS_PLUS_URLconstants removed. The long-deaddeprecated.phpfile has been deleted. These constants were moved there in 2013 and have been unreferenced ever since. Any third-party code still relying on them must switch to WordPress'splugin_dir_path()andplugin_dir_url().- Minimum WordPress version is now 6.4 (previously 5.9).
Added
- Real-time collaboration compatibility via the core entity store by @smithjw1 in #1217
- New
authors-by-term-idsREST endpoint for resolving term IDs to rich author data by @smithjw1 in #1217 - Jetpack Subscriber Emails integration for co-authors by @GaryJones in #1183
- WordPress Playground blueprint for Live Preview by @GaryJones in #1184
- Show user count before creating guest authors by @GaryJones in #1195
Changed
- Make guest-author CPT private by @GaryJones in #1232
- Replace
suggestlibrary with jQuery UI autocomplete by @GaryJones in #1187 - Raise minimum supported WordPress version to 6.4 by @GaryJones in #1152
Deprecated
- Filters
coauthors_post_list_pluck_fieldandcoauthors_post_get_coauthor_by_fieldwhen saving via REST — use theset_object_termsaction for the author taxonomy instead by @smithjw1 in #1217
Removed
cap/authorscustom Redux store by @smithjw1 in #1217- Long-dead
deprecated.phpfile and its unusedCOAUTHORS_PLUS_PATH/COAUTHORS_PLUS_URLconstants by @GaryJones in #1233
Fixed
- Fix SQL syntax error in CLI command when migrating users to guest authors by @NateWr in #1162
- Prevent PHP warning when deleting users without co-author terms by @GaryJones in #1166
- Fix PHP warning when post has no author by @shakyjake in #1133
- Simplify guest author lookup in
delete_user_action()to prevent warnings by @faisalahammad in #1209 - Prevent duplicate guest-authors during import by @GaryJones in #1181
- Support custom post types in
count_user_postsfilter by @GaryJones in #1182 - Remove deprecated jQuery
ready()call on element selector by @GaryJones in #1186 - Prevent fatal error when guest author slug conflicts with existing user by @GaryJones in #1190
create-guest-authorsCLI command now accepts required arguments by @NateWr in #1164- Fix
ComboboxControldeprecation warnings by @GaryJones in #1193 - Prevent fatal error when
author_nameis an array by @GaryJones in #1196 - Fix avatar collision on profile, post and edit screens by @katag9k in #996
- Adjust import of
PluginDocumentSettingPanelto resolve deprecation notice by @kadamwhite in #1108 - Allow guest author creation on WordPress 7.0 by @smithjw1 in #1206
Security
- Gate
CoAuthors_ControllerREST endpoints on post visibility by @GaryJones in #1234
Maintenance
- Add wp-env configuration for local development by @GaryJones in #1151
- Update composer.json for consistency by @GaryJones in #1153
- Migrate integration tests to use wp-env by @GaryJones in #1155
- Replace undefined
WP_TESTS_DOMAINconstant withhome_url()by @GaryJones in #1158 - Migrate Behat tests to wp-env and modernise CI workflows by @GaryJones in #1167, #1168, and #1169
- Migrate dependabot reviewers to CODEOWNERS by @GaryJones in #1172
- Standardise test matrix and update readme by @GaryJones in #1173
- Add JS build and lint workflows for npm updates by @GaryJones in #1175
- Enable WordPress-Extra and WordPress-Docs PHPCS rulesets with test exclusions by @GaryJones in #1176
- Automate deployment with build step and security hardening by @GaryJones in #1177
- Exclude build directory from git tracking by @GaryJones in #1180
- Use real WordPress image path in feed image test by @GaryJones in #1189
- Guard guest-author CPT visibility properties with an integration test by @GaryJones in #1232
- Bump wp-env dev PHP to 8.2 to restore local development by @GaryJones in #1235
- Keep multiple npm and GitHub Actions dependencies up to date via Dependabot
Documentation
- Reduce readme tags to WordPress.org limit of 5 by @GaryJones in #1188
- Add AGENTS.md and Claude Code config by @GaryJones in #1207
New Contributors
- @NateWr made their first contribution in #1162
- @shakyjake made their first contribution in #1133
- @kadamwhite made their first contribution in #1108
- @smithjw1 made their first contribution in #1206
- @faisalahammad made their first contribution in #1209
Full Changelog: 3.7.0...4.0.0