Plugin Directory: Add FAQPage schema markup for plugin pages#508
Plugin Directory: Add FAQPage schema markup for plugin pages#508nikunj8866 wants to merge 2 commits intoWordPress:trunkfrom
Conversation
|
|
||
| $document_internal_errors = libxml_use_internal_errors( true ); | ||
|
|
||
| $document = new \DOMDocument(); |
There was a problem hiding this comment.
I'm not a fan of using DomDocument like this on every page load.
We should either: Store the FAQs as post_meta, or use WP_HTML_Tag_Processor if absolutely required to extract from the HTML.
We can run a migration process to backfill the postmeta, so no need for doing both.
We could also migrate the existing FAQ markup to a block that pulls from that metadata..
There was a problem hiding this comment.
@dd32 I agree with your suggestion, the postmeta approach seems the cleanest long-term solution.
For new uploads, we can parse the readme during the upload process (e.g. in class-upload-handler.php) and store _plugin_faqs postmeta immediately.
For existing plugins, have we handled this kind of migration process in the past?
There was a problem hiding this comment.
We've done migrations for data regularly enough. It's a PITA but it's easier than building legacy code upon legacy code upon legacy code.
There was a problem hiding this comment.
@dd32 How were these migrations typically handled in the past? Is there any sample code or a PR I can look at as a reference to follow the same approach for FAQ?
There was a problem hiding this comment.
@nikunj8866 Generally either manually run or a bin script, I don't really have any good references for you.
One option in this case would be Just run the plugin import process for each plugin with FAQ items
What I'd suggest is ignoring back-compat and just work with:
- Store FAQ items as meta values
- Add a block, or shortcode, in place of the FAQ HTML markup in the post_content when it's built
- Leave older imported plugins without FAQPage schema items to start with, with the assumption that either a) a re-import will update it or b) a migration will be run.
There was a problem hiding this comment.
@dd32 Thanks for the guidance.
As I understand it:
- I'll add code to store FAQ content in post meta when plugins are uploaded.
- I'll create a block for FAQs. Just to confirm, should this block output both the FAQ HTML Markup and the FAQ schema, or do you prefer to keep schema generation separate?
- For older plugins, we could hook into
import_from_svnso that FAQs are stored into post meta whenever a plugin is updated.
Does that align with what you had in mind?
Meta Trac: https://meta.trac.wordpress.org/ticket/4695
This PR enhances the existing JSON-LD schema output on plugin detail pages to include a FAQPage node when such FAQ content is available.
Schema Verification link: https://search.google.com/test/rich-results/result?id=NcC3jhx4MFOkZgdLgnMlOg
Screenshots
Schema Output