Support » Installation » Fehler nach Update von PHP 7.4 auf 8.1 im LayerSlider

  • Hallo zusammen,
    ich habe für meine Seite die PHP Version von 7.4 auf 8.1 geändert. Jetzt wird die Seite nicht mehr geladen und ich erhalt eine Fehlermeldung, dass im Widget „LayerSlider“ etwas mit dem .php nicht stimmt.
    Habe mich schlau gemacht, aber effektiv nichts gefunden, wie ich das Problem lösen kann.
    Aktuell kann ich die Seite nicht öffnen.
    Um es besser zu erruieren, lasse ich die neue php Version mal stehen. Vieleicht erhalte ich auf diese Weise einen Hilfreichen Tip 🙂

    Die widgets.php-Datei die den Fehler verursacht habe ich im Anschluss reingepostet.

    Vielen Dank jetzt schon mal 🙂
    Es Grüsst
    Patrick

    ———————————————————————————-

    <?php
    
    // Widget action
    add_action( 'widgets_init', create_function( '', 'register_widget("LayerSlider_Widget");' ) );
    
    class LayerSlider_Widget extends WP_Widget {
    
    	function __construct() {
    
    		$widget_ops = array( 'classname' => 'layerslider_widget', 'description' => __('Insert a slider with LayerSlider WP Widget', 'LayerSlider') );
    		$control_ops = array( 'id_base' => 'layerslider_widget' );
    		parent::__construct( 'layerslider_widget', __('LayerSlider WP Widget', 'LayerSlider'), $widget_ops, $control_ops );
    	}
    
    	function widget( $args, $instance ) {
    		extract($args);
    
    		$title = apply_filters('widget_title', $instance['title']);
    		$title = !empty($title) ? $before_title . $title . $after_title : $title;
    
    		echo $before_widget, $title, LS_Shortcode::handleShortcode($instance), $after_widget;
    	}
    
    	function update( $new_instance, $old_instance ) {
    		$instance = $old_instance;
    		$instance['id'] = strip_tags( $new_instance['id'] );
    		$instance['title'] = strip_tags( $new_instance['title'] );
    		return $instance;
    	}
    
    	function form( $instance ) {
    
    		$defaults = array( 'title' => __('LayerSlider', 'LayerSlider'));
    		$instance = wp_parse_args( (array) $instance, $defaults );
    		$sliders = LS_Sliders::find(array('limit' => 100));
    		?>
    
    		<p>
    			<label for="<?php echo $this->get_field_id( 'id' ); ?>"><?php _e('Choose a slider:', 'LayerSlider') ?></label><br>
    			<?php if($sliders != null && !empty($sliders)) { ?>
    			<select id="<?php echo $this->get_field_id( 'id' ); ?>" class="widefat" name="<?php echo $this->get_field_name( 'id' ); ?>">
    				<?php foreach($sliders as $item) : ?>
    				<?php $name = empty($item['name']) ? 'Unnamed' : htmlspecialchars($item['name']); ?>
    				<?php if($item['id'] == $instance['id']) { ?>
    				<option value="<?php echo $item['id'] ?>" selected="selected"><?php echo $name ?> | #<?php echo $item['id'] ?></option>
    				<?php } else { ?>
    				<option value="<?php echo $item['id'] ?>"><?php echo $name ?> | #<?php echo $item['id'] ?></option>
    				<?php } ?>
    				<?php endforeach; ?>
    			</select>
    			<?php } else { ?>
    			<?php _e("You didn't create any slider yet.", "LayerSlider", "LayerSlider") ?>
    			<?php } ?>
    		</p>
    		<p>
    			<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e('Title:', 'LayerSlider'); ?></label>
    			<input type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" class="widefat" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>">
    		</p>
    	<?php
    	}
    }
    ?>

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

Ansicht von 10 Antworten - 1 bis 10 (von insgesamt 10)
  • Hallo,
    in deinem Fall ist der Fehler auf das Plugin Layerslider zurückzuführen. Du solltest das Plugin deaktivieren und danach müsstest du dich wieder anmelden können, wenn du über den Kundenbereich des Hosters auf PHP 7.4 umgestellt hast.

    Offensichtlich gibt es zumindest bei der von dir verwendeten Version des Plugins ein Problem mit PHP 8.x.

    Eine Anpassung des Codes macht in dem Fall keinen Sinn. Eher solltest du prüfen, ob es eine aktuellere Version des Plugins gibt, die mit PHP 8.x keine Probleme hat.

    Mehr können wir sagen, wenn wir den Website-Bericht kennen: Du findest unter Werkzeuge > Websitezustand > Info einen Bericht zur Website. Warte bitte einen Moment bis die Ladeanzeige ganz oben abgeschlossen ist und kopiere dann per Button den Website-Bericht in deine Zwischenablage. Über den Button „Bericht in die Zwischenablage kopieren“ kannst du den Bericht unverändert (bitte mit den Akzentzeichen am Anfang und Ende) einfügen und anschließend hier posten. Evtl. ergeben sich dann weitere Anhaltspunkte, ob und wo das Problem liegt.
    Lies bitte auch noch mal: Bevor du ein neues Thema (Thread) erstellst.

    Viele Grüße
    Hans-Gerd

    Warum hast du die PHP-Version umgestellt?
    Grundsätzlich ist es derzeit keine gute Idee, von 7.x auf 8.x umzustellen, siehe:
    https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/

    Thread-Starter tetra4

    (@tetra4)

    Da mein Hoster nur noch php 8 und höher akzeptiert ab Februar…

    Schick deinem Hoster ihm mal den Link:
    https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/
    Da ist PHP 8.x noch nicht vollends freigegeben!
    Ein fragwürdiger Hoster, der unter Umständen das meistverwendete CMS freiwillig nicht mehr korrekt hosten kann.

    • Diese Antwort wurde geändert vor 1 Monat, 2 Wochen von souri.
    Thread-Starter tetra4

    (@tetra4)

    Danke für deine info!
    Ich habe wieder php 7.4 aktiviert und ignoriere mal die Meldung, dass die php Version 7.4 veraltet ist.

    Bin gespannt, was er zum Link sagt.

    Gruss
    Patrick

    Bin gespannt, was er zum Link sagt.

    Man hört vermehrt, dass Hoster zwangsumstellen.
    Da hilft nur ein kollektiver Aufschrei bzw kleine Nadelstiche.
    Die offizielle WordPress-Doku hat PHP 8.X nicht vollends freigegeben, also ist das auch ein fragwürdiges Verhalten vom Hoster, wenn da zwangsumgestellt werden würde.

    Zudem heißt „keine Updates mehr bekommen“ für PHP 7.4 ja nicht, dass es sofort unsicher ist. Find ich also so oder so sehr komisch von Hostern:
    https://www.php.net/supported-versions.php

    @tetra4

    Seit der Version 6.11.3 wird PHP 8 von LayerSlider unterstützt.

    Hast du den Entwickler von LayerSlider kontaktiert und die Fehlermeldung übermittelt?

    Grundsätzlich ist es derzeit keine gute Idee, von 7.x auf 8.x umzustellen, siehe:
    https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/

    Und auf dieser Seite steht neben den PHP-8.x-Versionen ein Dev-Note-Link. Ruft man diesen auf, findet man folgende Informationen:

    WordPress Version >= 5.9 + PHP 8.0/8.1 verursachen keine Fehler (erst recht keine Fatal errors), aber es können Hinweise (deprecated Notices) auftauchen.

    Zum Nachlesen: PHP 8.1.

    Siehe dazu weiterführend auch:
    https://make.wordpress.org/hosting/handbook/server-environment/#php

    Ich habe alle WordPress-Websites (bis auf eine, da hängt es an einem Plugin) auf PHP 8.1 umgestellt und keine Probleme damit, auch in FB-Gruppen und anderen Netzwerken werden die gleichen Erfahrungen gepostet.

    Außerdem: Aufgeschoben ist nicht aufgehoben. Plugins und Themes werden weiterentwickelt und somit auch PHP-8.x.-kompatibel erstellt. Es wird dir aber nicht garantiert, dass eine veraltete PHP-Version, die offiziell EOL (End of Life) ist, bei diesen Plugin- und Theme-Updates weiterhin unterstützt wird.

    Thread-Starter tetra4

    (@tetra4)

    Vielen Dank für die Information. Ich werde dem nachgehen.
    Die Betroffene Seite ist quasi eine Testumgebung, die Produktive kann ich dann umstellen, wenn ich blacklabel.ch fehlerfrei zum laufen kriege.

    Gruss
    Patrick

    Man hört vermehrt, dass Hoster zwangsumstellen.
    Da hilft nur ein kollektiver Aufschrei bzw kleine Nadelstiche.

    Wie realitätsfern ist das denn?

    Wie realitätsfern ist das denn?

    Danke für diesen konstruktiven Diskussionsbeitrag Herr Moderator.

    Abgesehen vom schlechten Kundenservice ist das eindeutig ein Gewährleistungsfall, wenn mir mein Provider das System zerschießt.
    Viele Hoster werben mit WordPress-Unterstützung und One-Click-Installern für WordPress.
    Daher ist die WordPress-Unterstützung teil des Vertrags.
    Eine Zwangsumstellung auf PHP 8.x, welche von offizieller Seite noch nicht freigegeben wurde, siehe

    `

    ist ein typischer Fall von Leistungsstörung und fällt damit in das Gewährleistungsrecht.

    Wie realitätsfern ist das denn?

    Es ist also sehr realistisch, sich hier auf die Gewährleistung berufen zu können.

    Das wär übrigens genau der Hinweis, den geneigte Leser hier im Forum helfen könnte. Also der Hinweis auf Gewährleistung – dass Hoster nicht einfach so zwangsumstellen können.
    Aber klar, sowas schreibt sich leichter

    Wie realitätsfern ist das denn?

Ansicht von 10 Antworten - 1 bis 10 (von insgesamt 10)
  • Das Thema „Fehler nach Update von PHP 7.4 auf 8.1 im LayerSlider“ ist für neue Antworten geschlossen.