Support » Themes » Umstellung PHP 7.4 -> 8.0

  • Gelöst eleschneider

    (@eleschneider)


    Hallo,
    ich versuche seit Tagen von der PHP v7.4 auf die v8.0 umzustellen. Nach der Umstellung kommt die Meldung:
    "Too few arguments to function WP_Widget::__construct(), 0 passed in /homepages/14/d235404214/htdocs/page/wp-includes/class-wp-widget-factory.php on line 62 and at least 2 expected"
    und die Webseite ist nicht mehr erreichbar. Ich vermutete den Fehler in der Datei class-wp-widget-factory.php, habe die lokalisiert und versucht den constrcutor so anzupassen, wie es in den Foren stand, allerdings ohne Erfolg. Falls nötig, kann ich den Inhalt der Datei hochladen. Der Fehler bezieht sich explizit auf die Zeile 62, da stünde bei mir:

    public function register( $widget ) {
    		if ( $widget instanceof WP_Widget ) {
    			$this->widgets[ spl_object_hash( $widget ) ] = $widget;
    		} else {
    	/** Z. 62 **/	$this->widgets[ $widget ] = new $widget();
    		}
    	}

    Ich habe die Webseite für unsere Schule von einer Kollegin, die in Rente gegangen ist, übernommen. Unsere Webseite ist auf IONOS gehostet. Das Theme wurde von einem Schüler vor 10 Jahren ohne jegliche Dokumentation selbst programmiert. Und ich blicke ehrlich gar nicht durch.
    Die Umstellung auf v8.0 soll vor dem 2.04.23 stattfinden, weil sonst muss unsere Schule monatlich für den Support von der alten Version bezahlen. Also benötige ich dringend Hilfe.
    Vielen Dank im Voraus.
    Mit freundlichen Grüßen,
    Lena

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 14 Antworten - 1 bis 14 (von insgesamt 14)
  • Moderator Michi91

    (@michi91)

    Hey,
    Vermutlich wird dein Theme nicht mehr kompatibel sein. Ob es mit der einen Änderung getan ist, ist fraglich..

    Aktiviere doch mal testweise ein anderes Theme, wie z. B. https://wordpress.org/themes/twentytwentythree/ und mach dann das Update. Dann weißt du schonmal ob nur das theme Ärger macht oder weitere Fehler folgen.

    Erst einmal zur Fehlermeldung. Kürzen wir das mal auf die wichtigen Bestandteile:

    Too few arguments to function WP_Widget::__construct(), 0 passed in wp-includes/class-wp-widget-factory.php on line 62 and at least 2 expected

    … bedeutet umgangssprachlich: mit dem Code der Website soll ein Widget erstellt werden. Dabei werden der Funktion keine Paramater übergeben, zwei werden aber erwartet. – Ein Programmierfehler, bei dem mit PHP < 8 „ein Auge zugedrückt“ wurde, während es jetzt als Fehler eingestuft wird.

    Ich vermutete den Fehler in der Datei class-wp-widget-factory.php

    Nein, dort macht sich der Fehler nur bemerkbar.
    Der Programmierfehler liegt aber im Theme.

    Üblicherweise werden Widgets in der Datei functions.php des Themes angelegt. Poste bitte mal den Inhalt der Datei wp-content/themes/Luisenstift_Orange/functions.php. Solltest du in den Dateien des Themes spontan etwas finden, was sich nach Widgets anhört, wäre das auch interessant (ggf. in einem Unterverzeichnis incl{udes}).

    Das Theme wurde von einem Schüler vor 10 Jahren ohne jegliche Dokumentation selbst programmiert. Und ich blicke ehrlich gar nicht durch.

    Zu der Zeit hat man Themes häufig selbst programmiert, weil es noch nicht so viele Einstellungsmöglichkeiten gab. Ein Theme, das inzwischen zehn Jahre alt ist, dürfte aber auch nicht dem aktuellen Stand entsprechen. Ein Wechsel des Themes scheint zumindest mittelfristig sinnvoll, auch wenn das mit ein paar Anpassungen verbunden ist.

    Dass du ohne Dokumentation nicht durchblickst, ist verständlich. Dass ein Schüler, der selber ein Theme erstellt, sich nicht an Coding Standards hält und Kommentare weglässt aber auch. 🙂

    Thread-Starter eleschneider

    (@eleschneider)

    Vielen Dank für die schnelle Zurückmeldung.
    Ja, wir werden langfristig auf das andere Theme umsteigen müssen. Momentan ist es aber zeitlich gar nicht möglich bei dem vollen Lehrauftrag.
    Die Datei functions.php habe ich hier hochgeladen: functions.php
    Es gibt noch eine Datei functions.php im Ordener wp-content/themes/Luisenstift_Orange/admin/functions, sie scheint aber leer zu sein.
    Es gibt scheinbar keine Unterordner in themes, die direkt was mit Widgets zu tun haben, es gibt alledings einen ganzen Ordner …/page/wp-includes/widgets, wo 20 php Dateien über Widgets abgespeichert sind.

    Hallo,
    wie bereits Bego geschrieben hat, ist eine Änderung eines Themes, das 10 Jahre alt und außerdem nicht dokumentiert ist, mit relativ viel Aufwand verbunden, der sich m. E. absolut nicht lohnt.

    Die Umstellung auf v8.0 soll vor dem 2.04.23 stattfinden, weil sonst muss unsere Schule monatlich für den Support von der alten Version bezahlen. Also benötige ich dringend Hilfe.

    Eine Lösung sehe ich an sich nur, indem du dir einen Dienstleister suchst, der das für dich erledigt, wobei vermutlich der Aufwand sich eher lohnt, wenn man das mit einem Relaunch (neues Theme, neues Design) verbindet.

    Wir werden dir hier vermutlich kaum helfen können.

    Viele Grüße
    Hans-Gerd

    Das Theme scheint nicht im eigentlichen Sinne programmiert worden zu sein, sondern laut der verlinkten functions.php wurde es mit Artisteer erstellt. Artisteer erzeugt sehr eigensinnigen Code, was es sehr viel schwieriger machen dürfte, da irgendetwas anzupassen.

    Die Umstellung auf v8.0 soll vor dem 2.04.23 stattfinden, weil sonst muss unsere Schule monatlich für den Support von der alten Version bezahlen. Also benötige ich dringend Hilfe.

    Wie viel kostet denn der monatliche Support? Bei einem anderen großen und sehr bekannten Provider kostet das 7,81 € im Monat. Ich meine, das sollte auch eine Schule zahlen können, bis eine Umstellung auf ein anderes Theme erfolgt ist?

    Thread-Starter eleschneider

    (@eleschneider)

    Vielen lieben Dank für alle euren Beiträge.
    Der Support kostet tatsächlich ca. 8 Euro und die werden wir, so wie es aussieht, in Kauf nehmen müssen. Die Schulleitung hat einfach von mir eine Wunderlösung erwartet.
    Die Umstellung auf ein neues Theme muss in die Sommerferien verlagert werden. Bis dahin werde ich mich weiterbilden.
    Danke nochmal an alle.

    Wenn du jemand auf Fiverr beauftragst, das Theme zu patchen, wird das auch nicht teurer.

    @pixolin kennst du Artisteer? Das geht nicht einfach mal so zu patchen 🙂

    Thread-Starter eleschneider

    (@eleschneider)

    @pixolin Danke für den Tipp.

    Thread-Starter eleschneider

    (@eleschneider)

    @michi91 ich habe das Theme geändert und tatsächlich lässt sich dabei die PHP-Umstellung problemlos durchführen. Es lässt sich wohl nicht vermeiden, das neue Themen zu verändern.

    Es lässt sich wohl nicht vermeiden, das neue Themen zu verändern.

    → … ein neues Theme zu verwenden? 🤓

    Thread-Starter eleschneider

    (@eleschneider)

    Ja, klar 😀 sorry
    Danke Autokorrektur 🙈

    Da ein Theme-Wechsel die beste Lösung zu sein scheint, markiere ich den Thread als „gelöst“.

Ansicht von 14 Antworten - 1 bis 14 (von insgesamt 14)
  • Das Thema „Umstellung PHP 7.4 -> 8.0“ ist für neue Antworten geschlossen.