Wie stelle ich sicher, dass Änderungen an einem WordPress-Plugin bei einem Plugin-Update nicht verloren gehen?

Lesezeit: 6 Minuten

Wie stelle ich sicher dass Anderungen an einem Wordpress Plugin bei
Entwickler10

Ich bin mir ziemlich sicher, dass ich irgendwo gelesen habe, dass Sie die *.php-Hauptdatei des Plugins tatsächlich an einen anderen Ort verschieben können (ich nehme an, in Ihr Themenverzeichnis), um sie sicher zu haben, falls Sie Änderungen daran und Ihre Plugin-Updates vorgenommen haben. Ich habe Google versucht, aber ich kann nichts finden. Eine Google-Seite mit guten Ergebnissen reicht aus.

Ich habe gerade eine Situation erlebt, in der das Layout meiner 2 Plugins geändert wurde und meinen Bedürfnissen entsprach, und ich möchte sicherstellen, dass dies nicht noch einmal passiert. Abgesehen davon, dass sich die Hauptdatei an einem anderen Ort befindet, gibt es eine Möglichkeit, auch CSS- und JS-Dateien zu verschieben?

In Concrete5 CMS gibt es eine nette Möglichkeit, dies zu tun, indem Sie einen neuen Ordner innerhalb eines Blocks eines Add-Ons (kann als WP-Plugin angesehen werden) erstellen, in dem Sie Kopien der Hauptdatei, aller CSS- und JS-Dateien und erstellen können dann können Sie sie einfach bearbeiten und diese Vorlage für eine Seitenposition auswählen, in der Sie diesen Block verwenden.

Ich nehme an, dass es so etwas in WordPress nicht gibt, aber wie nah kann ich kommen?

UPDATE: Ich habe herausgefunden, wo ich diesen Rat angewendet habe, um eine neue Instanz der Datei zu erstellen und sie dann in das Themenverzeichnis zu verschieben. Das betreffende Plugin war HL-Twitter. Dies sind die Plugin-Dateien:

admin.php
archive.php
functions.php
hl_twitter.php
hl_twitter_archive.php
hl_twitter_widget.php
import.php
widget.php

Dies ist nun der oberste Inhalt (auskommentiert) der hl_twitter_widget.php:

Widget Theme for HL Twitter
To change this theme, copy hl_twitter_widget.php
to your current theme folder, do not edit this
file directly.

Available Properties:
$before_widget
$after_widget
$before_title
$after_title
$widget_title
$show_avatars
$show_powered_by
$num_tweets: how many tweets to show
$tweets: array of $tweet
$tweet: object representing a tweet
$tweet->twitter_tweet_id
$tweet->tweet
$tweet->lat
$tweet->lon
$tweet->created
$tweet->reply_tweet_id
$tweet->reply_screen_name
$tweet->source
$tweet->screen_name
$tweet->name
$tweet->avatar
$user: represents the Twitter user (ONLY SET IF SHOWING A SINGLE USERS TWEETS!)
$user->twitter_user_id
$user->screen_name
$user->name
$user->num_friends
$user->num_followers
$user->num_tweets
$user->registered
$user->url
$user->description
$user->location
$user->avatar       

Ich habe mich also geirrt, die Hauptdatei (in diesem Fall hl_twitter.php) zu kopieren, aber trotzdem – dies ermöglichte es mir, die Datei außerhalb des Plugin-Verzeichnisses zu bearbeiten, und das System prüft irgendwie auf ihre Existenz und nimmt sie auf, falls vorhanden. Wird dieses Verhalten von WordPress nativ unterstützt oder wurde es in das Plugin selbst integriert?

  • Sie werden damit wahrscheinlich in eine Welt voller Schmerzen eintreten, da es keinen Codierungsstandard für WP-Plugins gibt. Sie müssen bei jedem Update zwischen der alten und der neuen Version unterscheiden, es gibt keinen besseren Weg, es zu tun … deshalb ist es keine gute Idee, Plugins von Drittanbietern zu bearbeiten. (Sie können natürlich nach jeder Änderung einfach das gesamte Plugin-Verzeichnis kopieren, um sicherzugehen, aber Plugins können sich vollständig und ohne Vorankündigung ändern.)

    – Pekka

    9. Juni 2012 um 10:33 Uhr


  • Ich wäre froh, wenn ich zumindest eine neue Instanz der Hauptdatei erstellen und dann diese Datei bearbeiten könnte, nicht die am ursprünglichen Speicherort.

    – Entwickler10

    9. Juni 2012 um 10:40 Uhr

  • Du meinst direkt in WordPress, ohne Hilfe eines FTP-Programms? Möglicherweise gibt es dafür ein Plugin, aber vielleicht ist es für Sie einfacher, dies über das Control Panel Ihres Webhosts zu tun?

    – Pekka

    9. Juni 2012 um 10:41 Uhr

  • Das Problem hier ist nicht das bewegliche Teil selbst. Ich kann es ohne Probleme verschieben, aber ich muss wissen, wohin ich es verschieben kann, damit es noch funktioniert.

    – Entwickler10

    9. Juni 2012 um 12:06 Uhr

Wie stelle ich sicher dass Anderungen an einem Wordpress Plugin bei
Jure C.

Bei Themes hat WordPress ein Konzept von „Child-Themes“, das genau das ermöglicht: Änderungen vom Haupt-Theme getrennt zu halten, falls es sich ändert.

Ich habe noch keine Möglichkeit gefunden, dies mit Plugins zu tun.

Ich verwende selbst ein paar Taktiken:

  • Ich stoße die Plugin-Version auf eine sehr hohe Zahl wie 99.9. Auf diese Weise wird WordPress das Plugin niemals aktualisieren.
  • Speichern Sie meine Plugins in der Versionskontrolle (ich benutze Git, aber es spielt keine Rolle), dies ermöglicht Ihnen, das Plugin zu aktualisieren, das ‘diff’-Tool auszuführen und zu sehen, welche Änderungen passiert sind. Wenn Sie nicht mögen, kehren Sie einfach zurück, als wäre es ein schlechter Code, den Sie geschrieben haben. Aber diese Vorgehensweise erfordert ein wenig Geschick.

  • Sie haben also noch nichts von der Möglichkeit gehört, die .php-Hauptdatei des Plugins an einen anderen Ort zu verschieben (eigentlich eine Instanz davon zu verschieben)? Ich kann mich nicht erinnern, wo ich gelesen habe, dass das möglich ist.

    – Entwickler10

    9. Juni 2012 um 12:06 Uhr

  • Schauen Sie sich ein bisschen mehr um: ob Ihr Plugin unterstützt Haken oder Filter Sie können sie in der functions.php Ihres Themes ändern. Ganz ähnlich wie bei Child-Themes. Aber das Plugin muss das unterstützen.

    – Jure C.

    9. Juni 2012 um 13:02 Uhr

  • Um ein modifiziertes Plugin vor einem automatischen Upgrade zu schützen, reicht es aus, einen Quellcodeordner innerhalb des Plugin-Ordners zu erstellen. Zum Beispiel: mkdir wp-content/plugins/your-modified-plugin/.hg

    – Brian C

    13. März 2014 um 1:58 Uhr


  • Genius. Ist dieses Dokument irgendwo? Danke für das Teilen!

    – Jure C.

    13. März 2014 um 10:41 Uhr

Sprechen Sie davon, Teile eines modifizierten Drittanbieter-Plug-ins und einer aktualisierten Version gleichzeitig auszuführen?

Das wird nicht möglich sein. Es gibt keine magische Methode “Meine Änderungen beibehalten und automatisch in die neue Version übertragen”. Der Weg hier ist, einen Unterschied zwischen der bearbeiteten Version und dem Update zu machen und die Änderungen in die tatsächlichen Quelldateien zu integrieren.

Das Fazit ist, wenn Sie ein Plugin eines Drittanbieters manuell bearbeiten, müssen Sie es manuell überprüfen (und möglicherweise überarbeiten), sobald ein Update stattfindet. Aus diesem Grund ist es normalerweise keine gute Idee, Plugins von Drittanbietern umfassend zu modifizieren.

  • Ja, etwas in der Art. Um genau zu sein, möchte ich das Erscheinungsbild eines Kontaktformulars ändern, das ich über das Contact Form 7-Plugin erstellt habe. Also keine Funktionen hinzufügen, nur HTML- und CSS-Stil ändern. Ich glaube, ich habe kürzlich etwas darüber gelesen, wie man die .php-Hauptdatei aus dem Plugin-Verzeichnis nimmt und sie dann in das Verzeichnis (aktives Thema??) legt. Dann können Sie diese Datei bearbeiten und die ursprüngliche Plugin-Datei intakt lassen, wodurch Verluste bei Updates vermieden werden.

    – Entwickler10

    9. Juni 2012 um 14:28 Uhr


  • @denny es kann möglich sein oder nicht, es hängt ganz davon ab, wie das Plugin strukturiert ist. Wenn sich HTML und CSS in separaten Dateien befinden, können Sie diese möglicherweise sichern. Kannst du aber auch nicht – es kommt wirklich auf das Plugin an, dafür gibt es keine verbindlichen Regeln

    – Pekka

    9. Juni 2012 um 14:35 Uhr


1004080cookie-checkWie stelle ich sicher, dass Änderungen an einem WordPress-Plugin bei einem Plugin-Update nicht verloren gehen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy