[WP 3.8] Selbsterstelltes Theme zerschießt WP-Admin Login

  • Hallo,
    ich habe gerade mein selbsterstelltes Theme installiert und kann seitdem nicht mehr auf /wp-admin/, also auch den Login ins Backend zugreifen.

    Stattdessen erhalte ich die Fehlermeldung:
    Zitat:
    [TABLE="width: 100%"]

    [tr]


    [TD="class: alt2"] Warning[COLOR=#000000][FONT=Times New Roman]: Cannot modify header information - headers already sent by (output started at /mnt/web9/e3/35/52436135/htdocs/jam2013/wp-content/themes/jung2/functions.php:10) in[/FONT][/COLOR]/mnt/web9/e3/35/52436135/htdocs/jam2013/wp-includes/pluggable.php[COLOR=#000000][FONT=Times New Roman] on line [/FONT][/COLOR]896[/TD]

    [/tr]


    [/TABLE]

    die monierte functions.php sieht wie folgt aus:


    Ich denke mal es geht hier um das Widget, dass die letzten Post in der sidebar ausgeben soll. Hier verwende ich das Plugin TW Recent Posts Widget.

    In der Sidebar wird das Widget mit:

    PHP
    <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : endif; ?>


    aufgerufen, vielleicht fehlt hier aber auch noch etwas Code.
    Witzigerweise erhalte ich diese Fehlermeldung auf der lokalen Installation nicht. Die Theme Dateien sind 1:1 gleich, lokal wie online.
    Ich habe das Theme online installiert und dann die mit WP exportierten Daten dort importiert.

    Des weiteren scheint auch NextGen Gallery nicht richtig zu funktionieren. Jedenfalls bekomme ich auf meiner lokalen Installation, als auch Online immer eine Fehlermeldung, dass Bilder für eine neue Galerie nicht hochgeladen werden können. Vielleicht kann mir da auch jemand, trotz der spärlichen Infos, weiterhelfen.Ich hoffebesonders zum ersten Problem kann mir jemand helfen. Wenn noch Infos fehlen, reiche ich diese gerne nach.

    Ich danke euch schonmal im Voraus.


    PS: Ich habe WP 3.8 verwendet.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Das gemotze bezüglich header schon gesendet kann schon dann auftreten, wenn irgendwo eine unpassende Leerzeile ist. Oder wenn die Dateien falsch abgespeichert sind - ich hatte das auch schon bei normaler UTF-8-Kodierung, sofern ich nicht "ohne BOM" ausgewählt habe.

    Kontrolliere alle Deine Dateien nochmal auf Leerzeilen oder Leerzeichen an unnötigen Stellen, vor allem vor <?php oder nach ?> - auch kann es dann vorkommen, wenn man an ungünstiger Stelle einen header senden will, zum Beispiel um eine Formatierung zu erzwingen.

    Man kann die Realität ignorieren - aber nicht die Folgen der ignorierten Realität.

  • Das gemotze bezüglich header schon gesendet kann schon dann auftreten, wenn irgendwo eine unpassende Leerzeile ist. Oder wenn die Dateien falsch abgespeichert sind - ich hatte das auch schon bei normaler UTF-8-Kodierung, sofern ich nicht "ohne BOM" ausgewählt habe.

    Kontrolliere alle Deine Dateien nochmal auf Leerzeilen oder Leerzeichen an unnötigen Stellen, vor allem vor <?php oder nach ?> - auch kann es dann vorkommen, wenn man an ungünstiger Stelle einen header senden will, zum Beispiel um eine Formatierung zu erzwingen.

    Danke schonmal,
    ich hatte tatsächlich eine Leerzeile in meiner functions.php. Aber auch nach Löschen dieser bleibt der Fehler.

    Ich bin mir im Augenblick auch nicht ganz sicher, was in diesem Zusammenhang mit einem Header gemeint ist.

    Ich hatte auch die Möglichkeit, in die in der Fehlermeldung erwähnte pluggable.php zu schauen. In Zeile 896 steht folgendes:


    Code
    header("Location: $location", true, $status);


    der gesamte Block des Codes sieht so aus:


    Was bedeutet das Kommentar

    Code
    This causes problems on IIS and some FastCGI setups


    ?
    Die Seite ist bei Strato gehostet, falls das weiterhilft.

    Einmal editiert, zuletzt von j-automorphose (28. Dezember 2013 um 22:33)

  • Du hast die geänderte Datei auch wieder hochgeladen und wirklich überschrieben? Nimm mir die Frage nicht übel, ab und an passierts im Eifer des Gefechts, dass man den erneuten Upload vergisst oder eine Fehlermeldung bezüglich überschreiben übersieht ;-)

    Was Du hier zitierst sieht für mich danach aus, als ob ein Header gesendet werden solle, nachdem das schon geschehen ist. Sprich: entweder hast Du schon manuell einen Header gesendet, oder es erfolgte irgendeine (Test?)Ausgabe, was automatisch dazu führt, dass ein Header gesendet wird. Das geht eben nur einmal.

    Wenn dieser Fehler nur nach dem hochladen auftritt kann das zum Beispiel mit etwas zusammen hängen, was nur dann geschieht, wenn Du noch nicht eingeloggt bist - das lässt sich aber überprüfen, indem Du Dich lokal einmal explizit abmeldest.

    Man kann die Realität ignorieren - aber nicht die Folgen der ignorierten Realität.

  • Was mir grade noch auffiel: wo genau hast Du denn in der functions.php die Leerzeile entfernt? Ganz am Anfang? Dann müsste sich ja zumindest die Zeile ändern, über die geschimpft wird. Oder auch die zwischen den beiden PHP-Blöcken? Die würde ich nämlich erstmal als fehlerverursachend einstufen.

    Man kann die Realität ignorieren - aber nicht die Folgen der ignorierten Realität.

  • Was mir grade noch auffiel: wo genau hast Du denn in der functions.php die Leerzeile entfernt? Ganz am Anfang? Dann müsste sich ja zumindest die Zeile ändern, über die geschimpft wird. Oder auch die zwischen den beiden PHP-Blöcken? Die würde ich nämlich erstmal als fehlerverursachend einstufen.

    Genau, die zwischen den PHP-Blöcken. Am Anfang habe ich hier keine Leerzeile (Notepad++).
    Das witzige ist ja, dass das Theme trotz der Leerzeile in der functions.php lokal problemlos läuft. Ich habe auch mal den Login über einen anderen Browser aufgerufen und lokal keine Fehlermeldung.

    Ich habe zwischenzeitlich auch mal versucht diverse Plugins zu deaktivieren, aber keine Änderung.

    [EDIT] Gilt ein neuer Absatz (also wenn ich die Returntaste drücke, um in einer neuen Zeile fortzufahren) auch als Leerzeichen?

    Die Fehlermeldung hat sich auch wie folgt geändert:

    Code
    [B]Warning[/B]:  Cannot modify header information - headers already sent  by (output started at  /mnt/web9/e3/35/52436135/htdocs/jam2013/wp-content/themes/jung2/functions.php:14)  in [B]/mnt/web9/e3/35/52436135/htdocs/jam2013/wp-includes/pluggable.php[/B] on line [B]896[/B]

    functions.php:13 statt wie vorher functions.php:10

    Code der functions.php:

    Einmal editiert, zuletzt von j-automorphose (28. Dezember 2013 um 23:30)

  • Halleluja,
    ich habe den Fehler gefunden!!!

    Code
    add_action( 'init', 'register_my_menus' );
        ?>

    Zwischen diesen beiden Zeilen gab es mehrere Leerzeichen. Jetzt funktioniert es wieder.
    Aber es ist immer noch eigenartig, warum das ganze lokal problemlos lief.

    Aber vielen Dank für die Hilfe. Ich habe noch so ein/zwei Sachen, die nicht rund laufen. Aber da werde ich morgen mich nochmal zu melden.

    Gute Nacht!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!