Skip to content

fix(parse.ly): update meta_type default#4724

Merged
chickenn00dle merged 4 commits into
releasefrom
fix/update-default-parsely-config
Jun 17, 2026
Merged

fix(parse.ly): update meta_type default#4724
chickenn00dle merged 4 commits into
releasefrom
fix/update-default-parsely-config

Conversation

@chickenn00dle

@chickenn00dle chickenn00dle commented May 13, 2026

Copy link
Copy Markdown
Contributor

All Submissions:

Changes proposed in this Pull Request:

Closes https://linear.app/a8c/issue/NPPM-2833/possible-conflict-between-yoast-and-our-required-parsely-code-that-may

This PR updates the default meta_type parse.ly config to repeated_metas which is recommended by parse.ly . This also implements a migrator so existing sites with Parse.ly get the updated setting.

We need to do this to avoid the conflict pointed out in the linear task above when Yoast is active.

Removing parsely
These tests will require removing parsely and parsely settings several times. You can do so with the following:

wp plugin delete wp-parsely
wp option delete parsely
  1. On release, add the following snippet to a site where parsely is removed:
add_action( 'init', function(){
	$request = new WP_REST_Request( 'POST', '/newspack/v1/plugins/wp-parsely/configure' );
	$response = rest_do_request( $request );
} );
  1. Reload the page and go to Parsely settings.
  2. Confirm you see json_ld selected for Metadata Format:
Screenshot 2026-05-14 at 09 41 25
  1. Checkout this branch and reload the page
  2. Confirm Metadata Format is now set to repeated_metas
  3. Now remove parsely once again
  4. Ensure the snippet from step 1 is still present, then reload the page. (You'll likely need to navigate away and back again to the parsely settings page if you removed following the steps above)
  5. Confirm Metadata Format is set to repeated_metas

Other information:

  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes, as applicable?
  • Have you successfully ran tests with your changes locally?

Copilot AI review requested due to automatic review settings May 13, 2026 19:42
@chickenn00dle chickenn00dle requested a review from a team as a code owner May 13, 2026 19:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates Newspack’s automated configuration defaults for the Parse.ly plugin to use Parse.ly’s recommended meta_type setting (repeated_metas), intended to avoid the Yoast conflict referenced in NPPM-2833.

Changes:

  • Change the default Parse.ly setting meta_type from json_ld to repeated_metas when Newspack initializes Parse.ly settings for the first time.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@chickenn00dle

Copy link
Copy Markdown
Contributor Author

Just noting the lint failure was fixed here in trunk: #4718

@chickenn00dle chickenn00dle added the [Status] Needs Review The issue or pull request needs to be reviewed label May 14, 2026
@adekbadek adekbadek assigned adekbadek and unassigned adekbadek May 26, 2026

@adekbadek adekbadek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified end-to-end in an isolated env: the new default serves repeated_metas, and a stored meta_type=json_ld flips correctly on the real admin_init path.

One blocker and a few suggestions and nits.

Comment thread includes/plugins/class-parsely.php Outdated
Comment thread includes/plugins/class-parsely.php
Comment thread includes/plugins/class-parsely.php
Comment thread includes/plugins/class-parsely.php Outdated
Comment thread includes/plugins/class-parsely.php Outdated
Comment thread includes/plugins/class-parsely.php Outdated
Comment thread includes/plugins/class-parsely.php
@github-actions github-actions Bot added the [Status] Needs Changes or Feedback The issue or pull request needs action from the original creator label Jun 10, 2026
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@chickenn00dle

Copy link
Copy Markdown
Contributor Author

Thanks for the review @adekbadek! This is ready for another look.

@chickenn00dle chickenn00dle removed the [Status] Needs Changes or Feedback The issue or pull request needs action from the original creator label Jun 16, 2026
@chickenn00dle chickenn00dle requested a review from adekbadek June 16, 2026 21:39

@adekbadek adekbadek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Migration blocker resolved: an absent meta_type key and an empty option both migrate now via the ?? 'json_ld' default, with unit tests locking each branch (including the inactive-plugin stays-pending and idempotency cases). The admin_init re-run for late wp-parsely activations and the unconditional override of a deliberate json_ld choice are both documented and sound.

@github-actions github-actions Bot added [Status] Approved The pull request has been reviewed and is ready to merge and removed [Status] Needs Review The issue or pull request needs to be reviewed labels Jun 17, 2026

@adekbadek adekbadek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Migration blocker resolved: an absent meta_type key and an empty option both migrate now via the ?? 'json_ld' default, with unit tests locking each branch (including the inactive-plugin stays-pending and idempotency cases). The admin_init re-run for late wp-parsely activations and the unconditional override of a deliberate json_ld choice are both documented and sound.

@chickenn00dle chickenn00dle merged commit d5f4ea9 into release Jun 17, 2026
24 checks passed
@chickenn00dle chickenn00dle deleted the fix/update-default-parsely-config branch June 17, 2026 12:43
@github-actions

Copy link
Copy Markdown

Hey @chickenn00dle, good job getting this PR merged! 🎉

Now, the needs-changelog label has been added to it.

Please check if this PR needs to be included in the "Upcoming Changes" and "Release Notes" doc. If it doesn't, simply remove the label.

If it does, please add an entry to our shared document, with screenshots and testing instructions if applicable, then remove the label.

Thank you! ❤️

matticbot pushed a commit that referenced this pull request Jun 17, 2026
## [6.42.3](v6.42.2...v6.42.3) (2026-06-17)

### Bug Fixes

* **parse.ly:** update meta_type default ([#4724](#4724)) ([d5f4ea9](d5f4ea9))
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 6.42.3 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

matticbot pushed a commit that referenced this pull request Jun 17, 2026
# [6.43.0-alpha.2](v6.43.0-alpha.1...v6.43.0-alpha.2) (2026-06-17)

### Bug Fixes

* **audience:** decode HTML entities in campaign prompt titles ([#4711](#4711)) ([d22bd0f](d22bd0f))
* correct submit button text on change-payment-method page ([#4654](#4654)) ([15b230d](15b230d))
* **parse.ly:** update meta_type default ([#4724](#4724)) ([d5f4ea9](d5f4ea9))
* prevent content-gate editor.scss styles from getting chunked into the common.css file ([#4716](#4716)) ([4d4c557](4d4c557))
* **reader-activation:** exclude peeking newsletter from a11y tree ([#4744](#4744)) ([aba7794](aba7794))
* remove colour label changes to avoid bleeding into other blocks ([#4703](#4703)) ([befce8c](befce8c))
* **wc-memberships:** skip expiry filter for non-subscription memberships ([8769161](8769161))
* **web-preview:** right-align toolbar close button ([589248d](589248d))

### Features

* **admin:** companion to newspack-newsletters admin UX milestone ([#4735](#4735)) ([6d0566a](6d0566a))
* **block-theme:** add search overlay block ([#4729](#4729)) ([328f1ea](328f1ea))
* **integrations:** add inactive plugin state ([#4721](#4721)) ([f87a50f](f87a50f))
* **integrations:** add oauth and hidden field types ([#4639](#4639)) ([daafa6b](daafa6b))
* **integrations:** details modal and Run now for integration logs ([#4757](#4757)) ([db5ba79](db5ba79))
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 6.43.0-alpha.2 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

matticbot pushed a commit to Automattic/newspack-workspace that referenced this pull request Jun 18, 2026
## [6.42.3](Automattic/newspack-plugin@v6.42.2...v6.42.3) (2026-06-17)

### Bug Fixes

* **parse.ly:** update meta_type default ([#4724](Automattic/newspack-plugin#4724)) ([65335bf](Automattic/newspack-plugin@65335bf))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-changelog [Status] Approved The pull request has been reviewed and is ready to merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants