mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-07 02:22:49 +08:00
Google Search Console reports acceptedAnswer/suggestedAnswer errors on topics that emit QAPage structured data with answerCount:0 and neither field present. This affects single-post topics, topics where the only replies are hidden or small action posts, and topics whose accepted answer has been hidden. The fix introduces two checks: 1. A `has_eligible_answers?` query in SchemaUtils that verifies at least one visible, regular-type reply exists before emitting QAPage schema (both JSON-LD and microdata). Topics without eligible answers fall back to the default DiscussionForumPosting schema. 2. A `has_answers` policy in BuildSchemaMarkup that gates on the materialized accepted_answer/suggested_answers after they've been fetched, catching any edge cases the topic-level check might miss. Additionally, `fetch_accepted_answer` now checks post visibility via `Guardian.new.can_see_post?` (anonymous perspective) so hidden accepted answers are excluded from schema output rather than being advertised to search engines. The `"answered only"` setting also uses this visibility check instead of just testing whether an answer_post_id exists. https://meta.discourse.org/t/399525 |
||
|---|---|---|
| .. | ||
| controllers/discourse_solved | ||
| models/discourse_solved | ||
| serializers | ||
| services/discourse_solved | ||