Revolution Slider 6 und die URL-Umstellung bei Umzug oder SSL-Einrichtung

Das Plugin „Slider Revolution“ (oder auch Revolution Slider) ist eines der bekanntesten und meist genutzten WordPress-Plugins, um Slider für die eigene Website zu erstellen. Gleichzeitig ist das Plugin extrem mächtig im Funktionsumfang. Es ist kostenpflichtig und bei CodeCanyon einzeln zu erwerben (es kostet 29$ einmalige Lizenzkosten). Allerdings wird es in den meisten Fällen nicht einzeln gekauft, sondern häufig beim Kauf eines Themes vom Theme-Autor mitgeliefert. Dieser hat zuvor eine „erweiterte Lizenz“ erworben, mit der es dann möglich ist, das Plugin mit dem eigenen Theme zu „bundlen“ und mitzuvertreiben. Viele Themes bringen mehr als ein halbes Dutzend solcher „Premium-Plugins“ kostenlos mit.

Ist das Plugin nicht individuell erworben, sondern Bestandteil des Themes, so ist auch ein individuelles Update auf eine neuere Version nicht möglich. Ein Update ist dann nur über das Theme möglich, zum Beispiel durch ein Theme-Update, welches dann auch eine neuere Plugin-Version mitliefert.

Ich habe bereits vor einiger Zeit über die damit einhergehenden Probleme geschrieben. Mit diesem Artikel kommt ein weiteres hinzu…

Soviel zum Vorgeplänkel…

URL-Umstellungen in Revolution Slider (bis Version 5.x)

Das Umstellen der Website-URL einer WordPress-Website kann immer mal wieder notwendig sein, zum Beispiel beim Wechsel der Domain aber zum Beispiel auch beim Umstieg vom http-Protokoll auf https. Dazu müssen dann in der WordPress-Datenbank alle Vorkommen der URL durch die neue URL ersetzt werden. Dazu gibt es verschiedene Methoden:

Leider hilft dies nicht, wenn in der WordPress-Installation der Revolution Slider zum Einsatz kommt. Die dort hinterlegten Mediendateien (Bilder und Videos) sind, wie in WordPress üblich, auch mit absoluten Pfaden hinterlegt und müssen deswegen bei einer URL-Änderung auch berücksichtigt werden. RevSlider speichert seine Daten jedoch scheinbar in serialisierten Objekten in der Datenbank ab, weswegen diese von den oben genannten Tools nicht erkannt werden und ersetzt werden können.

Update: Mit „normalen“ serialisierten Objekten kommen die oben genannten Tools allesamt klar (Details siehe hier). Ich bezog mich eher auf die Unsitte, die Daten in Base64 zu codieren. Solche Daten sind dann für die Ersetzungstools wirklich nicht durchdringbar.

Der Revolution Slider bot dazu bis Version 5 ein eigenes (schon recht gut verstecktes) Tool an, mit dem man die URLs direkt im RevSlider ersetzen konnte. Allerdings funktioniert dieses Tool nur pro Slider. Hat man also mehrere Slider für die Website erstellt, muss man den Ersetzungsvorgang für jeden einzelnen Slider wiederholen.

Um die URLs eines Slider ersetzen zu können, öffnet man einen Slider und klickt dann auf den Reiter „Slider Settings“. Dort findet man in der rechten Seitenleiste den Punkt „Import / Export / Replace“, wo man wiederum den Reiter „Replace URL“ auswählen kann.

Im mittleren Reiter „Slider Settings“ findet man rechts die Seitenleiste, in der sich auch das Tool zur URL-Umstellung befindet.

Dort kann man alte URL und neue URL eingeben und ersetzen. Danach muss der Slider nochmal gespeichert werden. Wie oben bereits beschrieben, muss man diesen Vorgang für jeden angelegten Slider wiederholen.

Nach Eingabe der alten und neuen URL werden alle Vorkommen der URL in diesem Slider (!) ersetzt. Der Vorgang muss entsprechend für jeden Slider wiederholt werden.

URL-Umstellungen im Revolution Slider ab Version 6

Vor einiger Zeit hat die Hersteller-Firma (ThemePunch, übrigens mit Sitz in Köln) eine vollständig überarbeitete Version des Slider-Plugins veröffentlicht. Über die Theme-Updates sind damit auch nach und nach die in Theme-Bundles verfügbaren Plugin-Installationen aktualisiert worden.

Und somit fällt nun nach und nach auf, dass die Funktion zur Ersetzung der URLs verschwunden ist. Der oben beschriebene Weg existiert in der gänzlich neu gestalteten Benutzeroberfläche nicht mehr.

Nach etwas längerem Suchen findet man heraus, dass es für den RevSlider nun sogenannte Add-Ons gibt, kleine Pakete mit Zusatzfunktionen. Diese sind (anscheinend) kostenlos verfügbar (Liste von Add-Ons).

Für die Domain-Umstellung gibt es nun ebenso ein solches Add-On namens „Domain Switch„, welches (immerhin) kostenlos angeboten wird. Damit könnte die Lösung auch hier weiterhin erträglich sein: Add-On installieren, Domains ersetzen, fertig. Aber: hier beginnt nun der Spaß!

Das Installieren von Add-Ons in Revolution Slider ist nur möglich, wenn man seine Installation vorab mit einem Lizenzschlüssel (Purchase Code) registriert und lizensiert hat. Und dieser Lizenzschlüssel liegt nur denjenigen Benutzern vor, die das Plugin wirklich selbst auf dem Marktplatz erworben haben. Allen Benutzern, denen das Plugin zusammen mit dem Theme geliefert wurde, bleibt die Installation von Add-Ons verwehrt und damit auch die Möglichkeit, eine Domain-Umstellung vorzunehmen.

Der Versuch das Add-On ohne aktivierte Lizenz zu installieren scheitert. Man solle doch bitte den Purchase Code eingeben oder einen neu erwerben.

Im Artikel zum Add-On auf der ThemePunch-Seite wird für alle stolzen Erste-Hand-Lizenzbesitzer auch erklärt, wie das Addon funktioniert.

Scheinbar haben die Autoren des Plugins gemerkt, dass die Einzelverkäufe zu niedrig sind und möchten mit dieser Methode nun erreichen, dass mehr Theme-Slider-Benutzer nachträglich die Lizenz nochmal einzeln erwerben. Für die Nutzung von Spezialeffekten über Add-Ons kann ich das sogar noch nachvollziehen, jedoch nicht für eine technische Basis-Funktionalität wie einen Domainwechsel oder eine URL-Umstellung, die auf anderem Wege scheinbar nicht zu bewerkstelligen ist (eigentlich schon, siehe unten).

Es bleibt dem Benutzer also nichts anderes übrig, als eine ergänzende Lizenz des Plugins zu erwerben, um Zugriff auf das Domain-Switch-Add-On zu erlangen.

Mit aktivierter Lizenz kann das Add-On installiert und die Funktion zum Ersetzen der URL auch genutzt werden.

Noch eine Anmerkung: ich bin natürlich dafür, dass Plugin-Autoren für ihre Leistung bezahlt werden. Ich achte immer peinlich genau darauf, dass auf Kundenwebsites alle genutzten kostenpflichtigen Plugins und Themes auch in einer gültigen Lizenz vorliegen. Das (illegale!) Nutzen von kostenpflichtigen Komponenten ohne gültige Lizenz lehne ich entschieden ab. Hier geht es allerdings darum, dass die Benutzer mit dem Theme das Nutzungsrecht am Plugin mit-erworben haben und trotzdem bewusst von der Nutzung einer Basis-Funktion ausgeschlossen werden.

Der manuelle Weg: URL-Ersetzung in Slider Revolution ohne Add-On

Die Add-Ons des Revolution Sliders sind ganz normale WordPress-Plugins, die ergänzend installiert werden. Sie enthalten Code zur Verifikation der Lizenz, so dass diese Add-Ons nicht einfach manuell in einer unlizensierten Installation genutzt werden können.

Bei der Durchsicht der Funktionalität habe ich aber Entdeckungen gemacht, die eine URL-Ersetzung für die Slider auch ohne Add-On und eigene Lizenz möglich machen.

Meine Annahme, die Daten würden serialisiert gespeichert und deswegen von den üblichen Ersetzungstool nicht erwischt, ist wohl falsch. Es scheint so, als würden die URLs einfach nur als JavaScript-Code in der Datenbank gespeichert und in dieser Form „escaped“ sein. Das bedeutet, dass ein Slash „/“ nicht als solcher gespeichert wird, sondern ihm ein Backslash „\“vorangestellt wird.

Eine URL sieht dann entsprechend folgendermaßen aus:

Original-URL:

https://www.wp-wartung24.de/wp-content/uploads/2020/01/bild.jpg

Vom RevSlider gespeicherte URL:

https:\/\/www.wp-wartung24.de\/wp-content\/uploads\/2020\/01\/bild.jpg

Somit können die oben erwähnten Tools eben doch zur URL-Umsetzung genutzt werden. Es ist nur ein zusätzlicher Ersetzungslauf notwendig, in dem die alte und neue URL jeweils angepasst werden und allen Slashes jeweils ein Backslash vorangestellt wird.

Übrigens: Dieser Weg funktioniert auch in Version 5.x.

Der entsprechende Code im RevSlider-Add-On sieht folgendermaßen aus:

$rso = str_replace('/', '\/', $revslider_domain_switch['revslider-domain-switch-addon-old']);
$rsn = str_replace('/', '\/', $revslider_domain_switch['revslider-domain-switch-addon-new']);

//go through all tables and replace image URLs with new names
global $wpdb;
$sql = $wpdb->prepare("UPDATE ".$wpdb->prefix . RevSliderFront::TABLE_SLIDER. " SET `params` = replace(`params`, %s, %s)", array($rso, $rsn));
$wpdb->query($sql);
$sql = $wpdb->prepare("UPDATE ".$wpdb->prefix . RevSliderFront::TABLE_SLIDES. " SET `params` = replace(`params`, %s, %s)", array($rso, $rsn));
$wpdb->query($sql);
$sql = $wpdb->prepare("UPDATE ".$wpdb->prefix . RevSliderFront::TABLE_SLIDES. " SET `layers` = replace(`layers`, %s, %s)", array($rso, $rsn));
$wpdb->query($sql);
$sql = $wpdb->prepare("UPDATE ".$wpdb->prefix . RevSliderFront::TABLE_STATIC_SLIDES. " SET `params` = replace(`params`, %s, %s)", array($rso, $rsn));
$wpdb->query($sql);
$sql = $wpdb->prepare("UPDATE ".$wpdb->prefix . RevSliderFront::TABLE_STATIC_SLIDES. " SET `layers` = replace(`layers`, %s, %s)", array($rso, $rsn));
$wpdb->query($sql);

Somit gibt es dann doch eine leicht aufwendigere, aber absolut vertretbare Möglichkeit, mit einer im Theme miterworbenen Installation von Slider Revolution die URL/Domain-Umstellung vorzunehmen, ohne nur deswegen eine eigene Individuallizenz des Plugins erwerben zu müssen.

Ersatzweise kann man auch einfach vollständig auf Slider verzichten. Aus SEO-Sicht ist dies sogar besser, wie ein Artikel von Yoast bereits vor längerer Zeit erläutert hat.


Über Marc Nilius

Diplom-Informatiker, 20 Jahre IT- und Web-Erfahrung, 5 Jahre intensive WordPress-Erfahrung, Mit-Organisator WordPress Meetup Köln und WordCamp Köln 2016, Wapuu-Fan

6 Kommentare:

  1. Es scheint so, als würden die URLs einfach nur als JavaScript-Code in der Datenbank gespeichert und in dieser Form „escaped“ sein. Das bedeutet, dass ein Slash „/“ nicht als solcher gespeichert wird, sondern ihm ein Backslash „\“vorangestellt wird.

    Exakt so ist es! Die genannten Tools kommen mit normalen serialisierten Daten alle zurecht, sie scheitern nur an den Escape-Zeichen, daher greift das Suchen & Ersetzen nicht.

    Bei wenigen URLs kann der Slider schnell selbst geändert werden. Bei sehr vielen Slides einfach nochmal mit Escape-Zeichen das Suchen & Ersetzen durchführen.

    1. Danke Torsten! Da habe ich mich unklar ausgedrückt: mit serialisierten Daten meinte ich tatsächlich Objektdaten, die z.B. base64-codiert abgelegt werden, was dann tatsächlich dazu führt, dass die Tools am Ersetzen scheitern. Ich werde das im Text oben präzisieren.

  2. Könnte man nicht auch den Such- und Ersetzungsbegriff entsprechend anpassen?
    Suchbegriff: http:\/\/domain.tld
    Ersetzungsbegriff: https:\/\/domain.tld

    Damit sollte man das Problem auch kostenfrei umgehen können. Natürlich vorausgesetzt, man weiß, dass es maskiert in der Datenbank gespeichert ist.

    1. Hallo Matthias! Korrekt, so ist es. Schrieb ich hier im letzten Abschnitt des Artikels: 😉

      Somit können die oben erwähnten Tools eben doch zur URL-Umsetzung genutzt werden. Es ist nur ein zusätzlicher Ersetzungslauf notwendig, in dem die alte und neue URL jeweils angepasst werden und allen Slashes jeweils ein Backslash vorangestellt wird.

  3. Hallo Marc,

    danke für Deinen Bericht. Ich habe ebenfalls Probleme (nach der SSL Umstellung) mit der richtigen Darstellung der Fotos im Slider Revolution 6.2.2.

    Du hattest ober einen Code erwähnt – wo genau soll der Code eingefügt werden?
    Danke für Dein Feedback.

    Gruß
    Barbara

    1. Hallo Barbara, der Code-Schnipsel soll nur verdeutlichen, wie genau das Plugin arbeitet, er stammt aus dem Plugin.

      Wenn du nach der SSL-Umstellung Probleme mit den Bildern hast, dann installiere am besten ein Suchen/Ersetzen-Plugin (zB Better Search Replace). Dort kannst du dann in der Datenbank deine URL ersetzen (http://irgendwas zu https://irgendwas), wobei du im Suchen/Ersetzen-Plugin für jedes / ein \/ schreibst. Dadurch werden auch die Einträge des RevSliders erwischt. Vorher natürlich ein Datenbank-Backup machen!

      Sollte das unklar sein oder nicht klappen, kannst du dich natürlich auch gerne bei uns melden.

      Grüße,
      Marc

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Mit Absenden des Kommentars stimmen Sie der Verarbeitung und Speicherung der eingegebenen personenbezogenen Daten zu. Weitere Informationen dazu finden Sie in der Datenschutzerklärung.