Seitenvorlage – undefinierte Struktur im Quelltext

hey, ich habe die folgende Seitenvorlage für eine Sitemap.

  

Pages

Posts

  • <a href="https://wordpress.stackexchange.com/questions/13136/page-template-undefined-structure-in-source-code/#b">

Categories

Tags

Es ist meine Absicht, keinen Header mit oder etwas Ähnlichem zu definieren, da dieses Ding nur dazu benutzt wird, über einen Ajax-Aufruf geladen zu werden.

Aber die Ausgabe dieses Dinges sieht so aus

  

Irgendeine Idee, warum es eine komische Doctype-Deklaration gibt und ein in jede ul eingefügt wird. Außer für die Posts. Einfach nur komisch. Warum konnte das passieren und was verursacht das? Ich benutze tatsächlich einen html5 Doctype auf meiner Website.

Danke für die Hilfe

bearbeiten:

 add_filter('wp_list_pages', 'add_hash'); /*Add #hash to wp_list_pages() function*/ add_filter('wp_list_categories', 'add_hash'); /*Add #hash to wp_list_categories() function*/ function add_hash($output) { $dom = new DOMDocument(); $dom->loadHTML($output); $a_tags = $dom->getElementsByTagName('a'); foreach($a_tags as $a) { $value = $a->getAttribute('href'); $a->setAttribute('href', $value . '#b'); } return $dom->saveHTML(); } 

Das neue DOMDocument fügt diese Doctype-Deklaration und das Und hinzu

Solutions Collecting From Web of "Seitenvorlage – undefinierte Struktur im Quelltext"

Durchsuche alle deine Themen- und Plugin-Dateien nach:

 < !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" 

Deaktivieren Sie alle Plugins und aktivieren Sie sie Schritt für Schritt erneut. Diese Deklaration des Dokumenttyps ist nicht Bestandteil der coredateien von WordPress. irgendwo ist ein Filter aktiv.

Aktualisieren

Versuchen Sie, alle Filter aus den betroffenen functionen zu entfernen. Beginnen Sie mit wp_list_pages ():

 remove_all_filters( 'wp_list_pages_excludes', 99 ); remove_all_filters( 'wp_list_pages', 99 ); 

Ich glaube immer noch nicht, dass der Doctype nirgendwo zu finden ist. Das ist unmöglich.

Der Ansatz von DOMDocument scheint für den Zweck, den Sie zu erreichen versuchen, zu kompliziert. Könnten Sie das nicht einfach mit einem Regex-Filter machen?

 add_filter('wp_list_pages', 'add_hash'); add_filter('wp_list_categories', 'add_hash'); function add_hash($output) { return preg_replace( '//', '', $output ); } 

(schnell geschrieben, Entschuldigung, wenn diese Regex nicht alles erfasst … es ist nur für das Konzept …)

Wie laden Sie diese Vorlage? Wird es in einer anderen Vorlagendatei enthalten, die bereits get_header () und get_footer () aufruft, oder erstellt Ihr AJAX-Aufruf ein neues Fenster (dh ein neues Dokument)?

Außerdem: Warum steckst du deine Inhalte in einen Loop? Zum einen gibst du niemals the_content () oder the_excerpt () aus; Zum anderen gehe ich davon aus, dass Sie bei einer Sitemap keinen Seiteninhalt hinzufügen, sondern lediglich die Vorlage einer bestimmten Seite zuweisen möchten.