Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
321e841
Merge pull request #1203 from publishpress/sync/master-to-development…
rizaardiyanto1412 Aug 12, 2026
13d2dea
feat: list Required Words in the Pro requirements teaser
stevejburge Aug 26, 2026
e065ace
fix: count internal/external links against the site's real host, not …
stevejburge Aug 26, 2026
6200804
feat: show a live count next to counter checklist tasks
stevejburge Aug 26, 2026
9a5ddb4
feat: allow multi-line titles for custom checklist tasks
stevejburge Aug 26, 2026
23aadda
fix: double-parens and sort-order regression in live count badges
stevejburge Aug 26, 2026
50631db
fix: apply multi-line rendering to all task labels, not just permitte…
stevejburge Aug 26, 2026
3a7bc55
fix: ignore empty hosts in the internal-link host list
stevejburge Aug 26, 2026
9f084d7
Ignore .web and .ddev in git and local tooling.
andergmartins Sep 1, 2026
2cf856b
fix(a11y): improve settings tab navigation
codex Sep 1, 2026
8c369c6
fix(a11y): improve checklist configuration controls
codex Sep 1, 2026
c520aba
Bump fast-uri from 3.1.5 to 3.1.7
dependabot[bot] Sep 2, 2026
f8841f7
Bump browserslist from 4.28.1 to 4.28.8
dependabot[bot] Sep 3, 2026
79cbaa2
Fix editor locking up when dismissing the pre-publish modal
Sep 8, 2026
4f9eda7
Bump composer/composer from 2.10.2 to 2.10.3
dependabot[bot] Sep 8, 2026
db195b2
Fix checklist settings truncation over max_input_vars
rizaardiyanto1412 Sep 10, 2026
e227706
Fix Save draft blocked by incomplete requirements on WordPress 7.1
claude Sep 29, 2026
dc8c7d9
Merge pull request #1232 from publishpress/claude/project-thread-hqgiar
rizaardiyanto1412 Sep 29, 2026
8bda5c7
fix: harden auditor input handling
codex Oct 5, 2026
c40c782
fix: prepare uninstall transient queries
codex Oct 5, 2026
675b757
fix: harden auditor output paths
codex Oct 5, 2026
601e2ae
fix: clean auditor standards findings
codex Oct 5, 2026
3722928
Add a workflow that builds the plugin zip from any branch or PR
claude Oct 9, 2026
0ca7481
Move the zip build into the shared github-workflows workflow
claude Oct 12, 2026
eb13e24
Use the released build-zip workflow from github-workflows v3
claude Oct 12, 2026
358d914
Merge pull request #1237 from publishpress/claude/project-thread-r6x30s
rizaardiyanto1412 Oct 12, 2026
d9e6cf4
Fix fatal is_plugin_active() error in wp-admin on WordPress 6.7 and o…
claude Oct 14, 2026
fca9c57
Merge pull request #1224 from publishpress/dependabot/npm_and_yarn/fa…
repile[bot] Oct 14, 2026
36dc7c5
Merge pull request #1225 from publishpress/dependabot/npm_and_yarn/br…
repile[bot] Oct 14, 2026
7f9f037
Merge pull request #1227 from publishpress/dependabot/composer/compos…
repile[bot] Oct 14, 2026
9c66fd6
Merge pull request #1234 from publishpress/codex/auditor-uninstall-sql
repile[bot] Oct 14, 2026
8ff459f
Merge pull request #1220 from publishpress/feature/required-words-teaser
repile[bot] Oct 14, 2026
d9230be
Merge remote-tracking branch 'origin/development' into pr-1233
Oct 14, 2026
98fa279
Stop stripping slashes from stored checklist labels
Oct 14, 2026
4248faf
Merge remote-tracking branch 'origin/development' into pr-1235
Oct 14, 2026
f6885b7
Count terms with get_terms() so pagination works on WP 5.5
Oct 14, 2026
6b7accf
Merge remote-tracking branch 'origin/development' into pr-1236
Oct 14, 2026
2587423
Load bundled translations on WordPress before 6.8
Oct 14, 2026
1dc2ab7
Merge remote-tracking branch 'origin/development' into pr-1217
Oct 14, 2026
17d156e
Accept a string host in the extract_*_links() JS helpers
Oct 14, 2026
66fff5d
Merge remote-tracking branch 'origin/development' into pr-1219
Oct 14, 2026
ab19fd9
Scope pre-line to custom task titles in the checklist
Oct 14, 2026
ff24e82
Merge remote-tracking branch 'origin/development' into pr-1222
Oct 14, 2026
7399187
Fix settings tab click area and complete the tabs ARIA pattern
Oct 14, 2026
ff4950d
Don't move focus when the tab box padding is clicked
Oct 14, 2026
dae4c8e
Merge remote-tracking branch 'origin/development' into pr-1223
Oct 14, 2026
88785b8
Keep the old link look for the new configuration buttons
Oct 14, 2026
094b5b4
Merge pull request #1230 from publishpress/fix/1229-checklist-setting…
repile[bot] Oct 14, 2026
c3b15c5
Merge pull request #1226 from publishpress/fix/1209-button-disabled-w…
repile[bot] Oct 14, 2026
9bf2725
Merge pull request #1235 from publishpress/codex/auditor-output-and-c…
repile[bot] Oct 14, 2026
b4d3129
Merge pull request #1236 from publishpress/codex/auditor-standards-cl…
repile[bot] Oct 14, 2026
b3fc573
Merge pull request #1217 from publishpress/fix/internal-links-front-e…
repile[bot] Oct 14, 2026
e371f37
Merge pull request #1219 from publishpress/feature/multiline-custom-t…
repile[bot] Oct 14, 2026
09b18c8
Merge pull request #1222 from publishpress/codex/checklists-accessibi…
repile[bot] Oct 14, 2026
9dc35f3
Merge remote-tracking branch 'origin/development' into pr-1233
Oct 14, 2026
fc722c4
Merge pull request #1233 from publishpress/codex/auditor-input-hardening
repile[bot] Oct 14, 2026
89a7573
Merge remote-tracking branch 'origin/development' into pr-1223
Oct 14, 2026
ca670c5
Merge pull request #1223 from publishpress/codex/checklists-configura…
repile[bot] Oct 14, 2026
a72513d
fix(a11y): post editor checklist WCAG 2.2 AA fixes
codex Oct 15, 2026
41611bb
Merge pull request #1239 from publishpress/fix/1238-is-plugin-active-…
repile[bot] Oct 19, 2026
1d7843b
Merge branch 'development' into feature/live-character-counter
Oct 19, 2026
54d5da6
fix: live count badges update live, show zero, handle min > max, tran…
Oct 19, 2026
6231cb8
fix: show the Checklist pre-publish panel and keep live count badges …
Oct 19, 2026
bad44eb
Merge pull request #1218 from publishpress/feature/live-character-cou…
repile[bot] Oct 20, 2026
e2a03ff
Merge branch 'development' into codex/checklists-a11y-vpat
repile[bot] Oct 20, 2026
bc45c11
Merge pull request #1241 from publishpress/codex/checklists-a11y-vpat
repile[bot] Oct 20, 2026
c4dc09b
Block editor: no Checklist meta box, so visual revisions and RTC work…
Oct 20, 2026
f1fb5cc
Don't sync Pro's Approved by user placeholder when Pro isn't loaded
Oct 20, 2026
c525069
Only save a task state from users who may tick that task
Oct 20, 2026
ab4f1e6
Check the latest task states when the block editor saves
Oct 20, 2026
a8ae27f
Keep the saved post status when the block editor blocks a save
Oct 20, 2026
e4648ab
Save restricted tasks per click; don't drop ticks without REST meta
Oct 20, 2026
45d8dab
Merge pull request #1243 from publishpress/fix/1208-visual-revisions-…
repile[bot] Oct 20, 2026
83f17f8
Join CHANGELOG.md introduction onto one line #1240
Oct 20, 2026
709a64c
Merge pull request #1244 from publishpress/fix/1240-changelog-intro-o…
repile[bot] Oct 20, 2026
bbe38c0
Add PHPCS rulesets and restore the code-standards deploy gate #1207
Oct 20, 2026
801b884
Exclude the dev-workspace .cache folder from PHPCS #1207
Oct 20, 2026
ab3e328
Merge pull request #1245 from publishpress/fix/1207-phpcs-gate
repile[bot] Oct 20, 2026
e04356c
Bump version to 2.30.0 and update CHANGELOG
Oct 20, 2026
73611ff
Centre the plus icon in the "Add custom task" and "Add OpenAI Prompt …
Oct 22, 2026
8a62a14
update dev workspace
rizaardiyanto1412 Oct 26, 2026
0e791f8
update language
rizaardiyanto1412 Oct 26, 2026
f5cf21d
fix composer build
rizaardiyanto1412 Oct 26, 2026
d8c81e6
Fixed: Translations were not loaded on WordPress 6.8 and later when t…
rizaardiyanto1412 Oct 26, 2026
3390a93
Standardize ABSPATH guard syntax and add export-ignore entries to .gi…
rizaardiyanto1412 Oct 26, 2026
ea1e9d3
update changelog
rizaardiyanto1412 Oct 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,7 @@ webpack.config.js export-ignore
CONTRIBUTING.md export-ignore
.env.example export-ignore
.wordpress-org export-ignore
.phpcs.xml export-ignore
README.md export-ignore
dist export-ignore
node_modules export-ignore
25 changes: 25 additions & 0 deletions .github/workflows/build-zip.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Build plugin zip
permissions:
contents: read

# Builds the installable plugin zip from a pull request, branch, tag, or commit
# and attaches it to the run, so support can hand out hotfix builds. Run it from
# Actions > Build plugin zip, or add the `build-zip` label to a pull request.
# The build itself lives in publishpress/github-workflows.
on:
workflow_dispatch:
inputs:
ref:
description: Pull request number, branch, tag, or commit SHA to build. Leave empty to build the branch selected above.
required: false
type: string
default: ''

pull_request:
types: [ labeled ]

jobs:
build-zip:
uses: publishpress/github-workflows/.github/workflows/build-zip.yml@v3
with:
ref: ${{ inputs.ref }}
2 changes: 2 additions & 0 deletions .github/workflows/code-standards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:

workflow_dispatch:

pull_request:

jobs:
check:
uses: publishpress/github-workflows/.github/workflows/code-standards.yml@v3
5 changes: 1 addition & 4 deletions .github/workflows/deploy-free.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ on:
types: [ released ]

jobs:
# The code standards job stays visible, but it does not block the deploy.
# `composer lint:phpcs` reports 579 errors in this codebase, and 320 of them
# need class and method renames that would break the Pro add-ons.
# Restore `needs: [code-check]` on the deploy job when those are cleared.
code-check:
name: Check the code
uses: ./.github/workflows/code-standards.yml
Expand All @@ -17,4 +13,5 @@ jobs:
permissions:
contents: write
uses: publishpress/github-workflows/.github/workflows/deploy-free.yml@v3
needs: [code-check]
secrets: inherit
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,6 @@ dev-workspace/.cache
/version.txt
dev-workspace-cache/
.cache
.claude
.claude
.web/
.ddev/
2 changes: 2 additions & 0 deletions .phpcs-php-compatibility.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,6 @@
<exclude-pattern>/vendor/*</exclude-pattern>

<rule ref="PHPCompatibility"/>
<exclude-pattern>/\.web/</exclude-pattern>
<exclude-pattern>/\.ddev/</exclude-pattern>
</ruleset>
36 changes: 36 additions & 0 deletions .phpcs-plugin-review.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="PublishPressPluginReview"
xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/squizlabs/PHP_CodeSniffer/master/phpcs.xsd">
<description>WordPress.org plugin review standards (Plugin Check)</description>

<arg name="extensions" value="php"/>
<arg name="colors"/>
<arg name="cache"/>
<ini name="memory_limit" value="256M"/>
<arg name="basepath" value="."/>
<arg name="parallel" value="8"/>
<arg value="ps"/>

<file>.</file>
<file>readme.txt</file>

<exclude-pattern>/\.ddev/*</exclude-pattern>
<exclude-pattern>/\.web/*</exclude-pattern>
<exclude-pattern>/\.cache/*</exclude-pattern>
<exclude-pattern>/\.cursor/*</exclude-pattern>
<exclude-pattern>/\.github/*</exclude-pattern>
<exclude-pattern>/\.idea/*</exclude-pattern>
<exclude-pattern>/\.vscode/*</exclude-pattern>
<exclude-pattern>/\.wordpress-org/*</exclude-pattern>
<exclude-pattern>/bin/*</exclude-pattern>
<exclude-pattern>/dev-workspace-cache/*</exclude-pattern>
<exclude-pattern>/dist/*</exclude-pattern>
<exclude-pattern>/languages/*</exclude-pattern>
<exclude-pattern>/lib/vendor/*</exclude-pattern>
<exclude-pattern>/node_modules/*</exclude-pattern>
<exclude-pattern>/tests-old/*</exclude-pattern>
<exclude-pattern>/tests/*</exclude-pattern>
<exclude-pattern>/vendor/*</exclude-pattern>

<rule ref="vendor/publishpress/publishpress-phpcs-standards/standards/plugin-check-rulesets/plugin-review.xml"/>
</ruleset>
96 changes: 96 additions & 0 deletions .phpcs.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="PublishPress"
xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/squizlabs/PHP_CodeSniffer/master/phpcs.xsd">
<description>Apply Coding Standards to all the plugin files</description>

<arg name="extensions" value="php"/>
<arg name="colors"/>
<arg name="cache"/>
<ini name="memory_limit" value="256M"/>
<arg name="basepath" value="."/>
<arg name="parallel" value="8"/>
<arg value="ps"/>

<file>.</file>
<exclude-pattern>/.ddev/*</exclude-pattern>
<exclude-pattern>/.web/*</exclude-pattern>
<exclude-pattern>/\.cache/*</exclude-pattern>
<exclude-pattern>/\.cursor/*</exclude-pattern>
<exclude-pattern>/\.github/*</exclude-pattern>
<exclude-pattern>/\.idea/*</exclude-pattern>
<exclude-pattern>/\.vscode/*</exclude-pattern>
<exclude-pattern>/\.wordpress-org/*</exclude-pattern>
<exclude-pattern>/bin/*</exclude-pattern>
<exclude-pattern>/dev-workspace-cache/*</exclude-pattern>
<exclude-pattern>/dist/*</exclude-pattern>
<exclude-pattern>/languages/*</exclude-pattern>
<exclude-pattern>/lib/vendor/*</exclude-pattern>
<exclude-pattern>/node_modules/*</exclude-pattern>
<exclude-pattern>/tests-old/*</exclude-pattern>
<exclude-pattern>/tests/*</exclude-pattern>
<exclude-pattern>/vendor/*</exclude-pattern>

<rule ref="PSR12">
<exclude name="Generic.Files.LineLength.TooLong" />
<!--
Naming sniffs wait for a major version. Classes such as PPCH_Reviews and
Base_counter, and methods such as Meta_Description::init_language, are the
public surface that PublishPress Checklists Pro and third-party code use,
so renaming them needs a deprecation path. See #1207.
-->
<exclude name="PSR1.Methods.CamelCapsMethodName" />
<exclude name="Squiz.Classes.ValidClassName" />
<exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace" />
<!--
TODO: phpcbf pass after 2.30. These formatting findings (240 in 61 files
when this list was written) are all fixable with phpcbf, but that rewrites
most of the plugin, so it goes in its own PR with a full test pass. Remove
each line here once the code is fixed. See #1207.
-->
<exclude name="Generic.ControlStructures.InlineControlStructure.NotAllowed" />
<exclude name="Generic.Formatting.DisallowMultipleStatements.SameLine" />
<exclude name="Generic.WhiteSpace.ScopeIndent.Incorrect" />
<exclude name="Generic.WhiteSpace.ScopeIndent.IncorrectExact" />
<exclude name="PSR12.Classes.OpeningBraceSpace.Found" />
<exclude name="PSR12.ControlStructures.ControlStructureSpacing.CloseParenthesisLine" />
<exclude name="PSR12.ControlStructures.ControlStructureSpacing.FirstExpressionLine" />
<exclude name="PSR12.ControlStructures.ControlStructureSpacing.LineIndent" />
<exclude name="PSR12.ControlStructures.ControlStructureSpacing.SpaceBeforeCloseBrace" />
<exclude name="PSR12.ControlStructures.ControlStructureSpacing.SpacingAfterOpenBrace" />
<exclude name="PSR12.Files.FileHeader.SpacingAfterBlock" />
<exclude name="PSR12.Operators.OperatorSpacing.NoSpaceAfter" />
<exclude name="PSR12.Operators.OperatorSpacing.NoSpaceBefore" />
<exclude name="PSR2.Classes.ClassDeclaration.CloseBraceAfterBody" />
<exclude name="PSR2.Classes.ClassDeclaration.OpenBraceNewLine" />
<exclude name="PSR2.ControlStructures.ElseIfDeclaration.NotAllowed" />
<exclude name="PSR2.Files.EndFileNewline.NoneFound" />
<exclude name="PSR2.Methods.FunctionCallSignature.Indent" />
<exclude name="PSR2.Methods.FunctionCallSignature.SpaceAfterOpenBracket" />
<exclude name="PSR2.Methods.FunctionCallSignature.SpaceBeforeCloseBracket" />
<exclude name="PSR2.Methods.FunctionClosingBrace.SpacingBeforeClose" />
<exclude name="Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace" />
<exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis" />
<exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword" />
<exclude name="Squiz.Functions.MultiLineFunctionDeclaration.BraceOnSameLine" />
<exclude name="Squiz.Functions.MultiLineFunctionDeclaration.SpaceAfterFunction" />
<exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen" />
<exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingBeforeClose" />
<exclude name="Squiz.WhiteSpace.ScopeClosingBrace.ContentBefore" />
<exclude name="Squiz.WhiteSpace.ScopeClosingBrace.Indent" />
<exclude name="Squiz.WhiteSpace.ScopeKeywordSpacing.Incorrect" />
</rule>
<!-- Templates mix HTML and PHP; their docblocks are not file headers. -->
<rule ref="PSR12.Files.FileHeader.HeaderPosition">
<exclude-pattern>/modules/*/templates/*</exclude-pattern>
</rule>
<rule ref="WordPressVIPMinimum">
<exclude name="WordPress.DateTime.RestrictedFunctions.date_date" />
<exclude name="WordPress.WP.GlobalVariablesOverride.Prohibited" />
<exclude name="WordPress.DB.DirectDatabaseQuery.SchemaChange" />
<exclude name="WordPress.DB.DirectDatabaseQuery.DirectQuery" />
<exclude name="PSR1.Files.SideEffects.FoundWithSymbols" />
</rule>
<rule ref="WordPress-VIP-Go"/>
<rule ref="VariableAnalysis"/>
<rule ref="PublishPressStandards"/>
</ruleset>
2 changes: 2 additions & 0 deletions .phplint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,6 @@ exclude:
- cache
- languages
- .wordpress-org
- .web
- .ddev
warning: false
2 changes: 2 additions & 0 deletions .rsync-filters-post-build
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,5 @@
- .prettierrc
- .rsync-filters-post-build
- .rsync-filters-pre-build
- .web
- .ddev
4 changes: 4 additions & 0 deletions .rsync-filters-pre-build
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
- .kombai
- .php-cs-fixer.cache
- .phpcs.xml
- .phpcs-php-compatibility.xml
- .phpcs-plugin-review.xml
- .phplint-cache
- .phplint.yml
- .playwright-mcp
Expand Down Expand Up @@ -68,3 +70,5 @@
- assets_wp
- .phplint-cache
- .phplint.cache
- .web
- .ddev
22 changes: 20 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).

[2.30.0] - 27 October, 2026

- Added: Counter tasks now show a live count in the editor #1218
- Added: Custom tasks can have multi-line titles #1219
- Added: The Pro teaser now lists the Required Words task #1220
- Fixed: Visual revisions and real-time collaboration did not work in the block editor because of the Checklist meta box #1208
- Fixed: Save draft was blocked by incomplete requirements on WordPress 7.1 #1232
- Fixed: The editor locked up after clicking "No" in the pre-publish modal #1209
- Fixed: Fatal error in wp-admin on WordPress 6.7 and older when Yoast SEO is not active #1238
- Fixed: Checklist settings were not saved completely when many post types were enabled #1229
- Fixed: Internal and external link tasks used the admin host instead of the site's real host #1217
- Fixed: Translations were not loaded on WordPress 6.8 and later when the plugin is bundled inside Pro
- Changed: The minimum PHP version is now 8.2
- Changed: Updated the dev-workspace library to 2.0.4 and the translations library to 1.6.1
- Changed: Improved accessibility of the post editor checklist, the settings navigation and the Checklist configuration screen #1222, #1223, #1241
- Changed: Hardened input handling, output escaping, term counting and uninstall cleanup #1233, #1234, #1235, #1236
- Changed: Fixed coding standards so the code-standards check can block releases again #1207
- Changed: Joined the CHANGELOG.md introduction onto one line #1240

[2.29.0] - 10 August, 2026

Expand Down
Loading
Loading