RSS / Atom Feeds ungültig, “Mismatched Tag” -Fehler

Wir haben Probleme, unsere Feeds entweder auf Feed Validator oder den W3C Feed Validation Service zu validieren.

Wenn ich einen der üblichen URIs eintrage:

  • [Siteurl] / Futtermittel
  • [siteurl] / Zufuhr / Atom
  • [siteurl] / feed / rss2

Ich erhalte verschiedene Fehler in Bezug auf nicht übereinstimmende Tags, normalerweise entweder das schließende Tag am Ende des Dokuments oder das -Tag am Ende eines Posts.

Wir verwenden ein benutzerdefiniertes Thema, aber ich kann nicht sagen, ob etwas dort stören würde. Muss ich dem inneren HTML entkommen oder etwas anderes schließen?

Solutions Collecting From Web of "RSS / Atom Feeds ungültig, “Mismatched Tag” -Fehler"

Bei genauerer Betrachtung der Ausgabe fehlten alle Elemente, die keine expliziten schließenden Tags enthielten, die selbstschließende Schreibweise, dh ;

Aus irgendeinem Grund hatte die Datei functions.php diese functionen, um die Ausgabe für HTML5 “aufzuräumen”:

 /********************************************** REMOVE SELF-CLOSING TAGS && USER-HARDCODED TAGS ***********************************************/ if ( !is_admin() && ( ! defined('DOING_AJAX') || ( defined('DOING_AJAX') && ! DOING_AJAX ) ) ) { ob_start( 'html5_slash_fixer' ); add_action( 'shutdown', 'html5_slash_fixer_flush' ); } function html5_slash_fixer( $buffer ) { $buffer = str_replace( '

', null, $buffer ); $buffer = str_replace( ' />', '>', $buffer ); return $buffer; } function html5_slash_fixer_flush() { ob_end_flush(); }

Also habe ich eine Überprüfung in der html5_slash_fixer Methode html5_slash_fixer , um festzustellen, ob die aktuelle Abfrage für einen Feed ist: is_feed (WordPress Codex)

 function html5_slash_fixer( $buffer ) { $buffer = str_replace( '

', null, $buffer ); if( !is_feed() ){ $buffer = str_replace( ' />', '>', $buffer ); } return $buffer; }

Mit diesem Fix wird die Ausgabe nur mit Warnungen validiert.