Support » Allgemeine Fragen » Was muss ich bei Code Modifizierungen beachten?

  • Gelöst Michael

    (@fastengold)


    Hallo miteinander!

    Ich hab ein paar allgemeine Fragen. Was muss man denn bei Plugin-Code-Änderungen beachten, in Bezug auf kommende Updates? Wie schaffe schaffe ich es, dass die Änderungen, die ich aktuell anlege – auch später noch funktionieren?

    Ich arbeite mit dem WP Event Manager und ein paar Addons. Ich bin dabei template.php und function.php Dateien – zu verändern und alles funktioniert auch genau so wie ich mir das vorstelle. Ich hab aber keine Ahnung, ob ich es tatsächlich richtig mache.

    • Wie sehen denn Updates eigentlich aus? Wird dabei die komplette Datei ausgetauscht, oder in der bestehenden Datei lediglich ein paar Zeilen ergänzt/verändert?
    • Irgendwann hab ich mal von einem child-theme gelesen, gibts sowas hierfür auch oder betrifft das nur das css?
    • Kann/darf/muss man direkt in den Original Dateien schreiben, oder ist alles weg bei einem Update?
    • Und wenn ja, kann ich dort die Funktionen, die ich nicht brauche einfach löschen, oder muss man die auf false umstellen, oder anderweitig ausser Kraft setzen, weil es sonst bei einem Update dieser Funktionen zum Crash kommen könnte?
    • Kann es bei WordPress einen Unterschied, wenn sie gekauft wurde, oder darf man alle modifizieren?
    • Wo finde ich deutschsprachige Code-Freelancer, für das, was ich selbst nicht schaffe?

    Das sind so meine Fragen aktuell. Vielen Dank im Voraus.

    Michael

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)
  • Änderungen im Plugin werden beim nächsten update überschrieben.
    Es gibt auch keine „Child-Plugins“, mit denen du Änderungen dauerhaft überschreiben kannst.

    Eine Möglichkeit, Änderungen dauerhaft vorzunehmen, ist das Plugin umzubenennen. Damit gibt es dann künftig keine Updates, was allerdings (besonders wenn die Updates Sicherheitslücken schließen sollen) nicht erstrebenswert ist.

    Da die Plugins aber üblicherweise Hooks verwenden, kannst du ein eigenes Plugin erstellen, dass die Funktionen deines ursprünglichen Plugins deaktiviert und mit einer eigenen Funktion ersetzt. Da das etwas theoretisch ist, ein kurzes Beispiel, um die Funktionsweise zu demonstrieren:

    Nehmen wir an, du hast ein SEO-Plugin, das in den Header ein Meta-Tag einfügt. Dazu verwendet das Plugin eine Funktion

    add_action( 'wp_head', 'seoplugin_meta_tag' );
    function seoplugin_meta_tag() {
      echo '<meta name="description" 
    content="This is an example of a meta description. 
    This will often show up in search results.">';
    }

    Nun möchtest du aber, dass an dieser Stelle ein anderer Code verwendet wird (während du mit den restlichen Funktionen des Plugins einverstanden bist). Dazu erstellst du selber ein Plugin und fügst dem Plugin folgende eigene Funktion hinzu:

    if( function_exists('seoplugin_meta_tag'){
    remove_action( 'wp_head', 'seoplugin_meta_tag' );
    add_action( 'wp_head', 'my_seoplugin_meta_tag' );
    }
    
    function my_seoplugin_meta_tag(){
      echo '<meta name="description" 
      content="Ganz was anderes.">';
    }

    Deine Änderung wird dann beim Updates des ursprünglichen Plugins nicht überschrieben. Allerdings musst du bei jedem Update schauen, ob es gravierende Änderungen gibt, die im Konflikt zu deinen Anpassungen stehen (z.B. wenn der Funktionsname geändert wird).

    Die OpenSource-Lizenz GPLv2 erlaubt dir ausdrücklich, Änderungen und Anpassungen nach deinen Wünschen vorzunehmen. Plugins, die WordPress-Funktionen verwenden, sollten damit auch der GPLv2 unterliegen und ebenfalls Anpassungen erlauben. Ansonsten solltest du die Lizenzbedingungen lesen, unter denen dir ein Plugin verkauft wird. (Ich bin kein Jurist.)

    Nach meiner Erfahrung kann die Änderung von Plugins schnell recht aufwendig werden. Wahrscheinlich ist es besser, wenn du dir dann ein anderes Plugin suchst, das mehr zu deinen Wünschen passt.

    Freelancer/WordPress-Dienstleister findest du über Suchmaschinen. Es gibt auch Portale, bei denen du Jobs einstellen kannst und dann Angebote bekommst.
    Hier im Support-Forum sind Jobangebote jeglicher Art unerwünscht.

    Super, vielen Dank! Ist zwar nicht meine erhoffte Lieblingsantwort geworden, aber gefühlt bin ich ein ganzes Stück weiter.

    Zum eigenen Plugin. Das klingt eigentlich gar nicht sooo schlimm oder zu aufwendig.
    Für das Abschalten nehm ich dann einfach das hier? (angepasst natürlich)

    if( function_exists('seoplugin_meta_tag'){
    remove_action( 'wp_head', 'seoplugin_meta_tag' );
    }

    Das würde schon reichen? Das wäre ja genial.
    Dann pack ich mir die Änderungen seperat und steuer das ganze so.
    Das meiste, was ich jetzt gerade ändere sind ja nur kleine Sachen. Sowas wie welche Texte wo ausgeworfen werden. Und ob die ausgeworfen werden. Aber „Plugin“ hört sich beim zweiten drüber nachdenken auch nach dem von WordPress vorgesehenem Weg an.

    Und danke auch für deine Sicht und Hinweis bezüglich der Plugin Änderungen. Das versuch ich herauszufinden: wie aufwendig mache ich es mir langfristig und brauche ich dabei dann externe Hilfe. Zu zeit- oder gar kostenintensiv sollte es nämlich auch in der Betreuung gar nicht werden, weil ich kein Geld damit verdienen wollte. Und exakt eine brauchbare Plugin Alternative hab ich finden können – bei der müsste ich mich ins Thema Datenbank Attribute reinarbeiten. Ob das langfristig sinnvoller wäre, weiß ich nicht.

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)