Support » Themes » WordPress-Child-Theme | Plugins einbinden

  • Gelöst bulls_shark

    (@bulls_shark)


    Liebes Support Team, liebes Mitglied!

    Soweit ich es verstanden habe, kann ich ohne Probleme Designanpassungen vom Template in der style.css im Ordner Child-Theme vornehmen.

    Nun muss ich bzw. musste ich Anpassungen in 2 Plugins vornehmen:
    Plugin 1: index.php, Plugin 2: index.php und test.php.

    Wie speichere ich diese Änderungen am besten ab, so das Sie nicht bei einem Update überschrieben werden?

    Ist dies mit der Child-Theme möglich?
    Wenn ja bitte ich um eine Erklärung wie das funktioniert und was ich dafür tun muss.

    Vielen Dank für Eure Hilfe und einen schönen Start in das Wochenende!

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Moderator Torsten Landsiedel

    (@zodiac1978)

    Ist dies mit der Child-Theme möglich?

    Nein, Child-Themes sind, wie der Name schon sagt, nur bezogen auf Themes, nicht auf Plugin. Es gibt auch keine Child-Plugins. Falls du Änderungen an einem Plugin vornehmen möchtest, dann stellt das Plugin hoffentlich dafür einen Hook zur Verfügung. Oder, falls es ein Bug ist, solltest du den Entwickler/die Entwicklerin kontaktieren und den Bug fixen lassen.

    Gruß, Torsten

    Liebes Support Team, liebes Mitglied!

    Das ist mal eine nette Anrede. 👍🏻
    Wesentlich besser als „Liebe Gemeinde …“ – oder seh‘ ich aus wie ein Priester? 🙄

    Jetzt aber zu deiner Frage:

    Themes sind in WordPress Gestaltungsvorlagen, sie dienen der Darstellung deiner Inhalte.

    Plugins sind Programmerweiterungen, mit denen die Funktionalität vomn WordPress geändert oder erweitert werden kann.

    Du kannst zwar Änderungen an Plugins in der functions.php eines Child Themes vornehmen, ratsam ist das aber nicht, ganz einfach weil Funktionalität und Darstellung bunt durcheinandergewürfelt werden, die Wartung der Website dadurch unnötig erschwert wird und ein späterer Theme-Wechsel sich auf einmal auf Plugins auswirkt, weil deine Änderungen wegfallen.

    Besser ist es, ein eigenes Plugin aufzusetzen, in das du deine Änderungen schreibst. Kompliziert? Gar nicht. Du erstellst mit einem Programmier-Editor (z.B. Atom Editor) eine neue PHP-Datei und schreibst als erstes in diese Datei ein paar Informationen über das Plugin, z.B.

    <?php
    /**
     * Plugin Name: Bulls_Shark Custom Functions
     * Description: Überschreibt einige Funktion aus verwendeten Plugins
     * Author: bulls_shark
     * Version: 1.0.0
     * License: GPL2
     */
    
    // Make sure this file is only run from within WordPress.
    defined( 'ABSPATH' ) or die();

    Das speicherst du als bullsharkscustom.php, packst es in ein Verzeichnis bullsharkscustom und komprimierst das Verzeichnis als .zip-Datei – schon kannst du ein eigenes Plugin installieren, auch wenn das im Moment noch keine Funktion hat.

    Damit ein Plugin im offiziellen WordPress Plugin-Verzeichnis landen kann, muss es bestimmte Richtlinien einhalten, die im Plugin Handbook aufgeführt werden. Eine „Best Practice“ ist, dass Plugins prüfen sollen, ob eine Funktion bereits definiert wurde, um einen Fehlerdurch die doppelte Vergabe eines Funktionsnamen auszuschließen. Deine Plugins verwenden Funktion also höchstwahrscheinlich in der Form

    //Create a function called "wporg_get_foo" if it doesn't already exist
    if ( !function_exists( 'wporg_get_foo' ) ) {
        function wporg_get_foo() {
            return get_option( 'wporg_option_foo' );
        }
    }

    (Quelle: Plugin Handbook)

    In diesem Fall kannst du in deinem gerade erstellten Plugin eine eigene Funktion wporg_get_foo() anlegen, die du über den Hook activated_plugin einbindest:
    add_action( 'activated_plugin', 'wporg_get_foo' );

    WordPress stellt Entwicklern eine ganze Reihe „Hooks“ (en. Haken) zur Verfügung, in der Plugins „eingehängt“ werden können. Dies erfolgt wie gerade gezeigt mit add_action( 'name_des_hooks', 'name_der_funktion' );. Wenn du nun die Funktion eines Plugins ändern möchtest, kannst du auch schauen, welche Hooks verwendet werden und die Funktion mit remove_action( 'name des hooks', 'name_der_funktion' ); entfernen, um anschließend eine abgewandelte Fassung selber wieder mit add_action() einzubinden. (vg. Codex add_action() und remove_action()).

    Denk daran, dass dir bei der Programmierung eines eigenen Plugins Fehler unterlaufen können, die dich im ärgsten Fall aus deiner Website aussperren können. Du solltest vor der Installation immer ein Backup machen und sicherstellen, dass du per FTP auf deine Dateien auf dem Webserver zugreifen kannst, um zur Not das Plugin-Verzeichnis im Ordner wp-content/plugins/ wieder löschen zu können. Sicher ist sicher. 😉

    PS: Torsten war diesmal schneller, vermutlich weil ich mich so lange und ausgiebig über die endlich mal korrekte Anrede gefreut habe. Unsere Beiträge haben sich wohl überschnitten. Nix für ungut, Torsten.

    Hallo Torsten, danke für die Antwort. Mit einen Hook habe ich es noch nicht probiert, dazu kenne ich mich zu wenig aus. Werde aber deinen Tipp annehmen und mal nachlese dafür.

    Danke

    Hallo Bego, danke für Deine Antwort und die Beschreibung 🙂 werde es sicher am Wochenende Teste. Danke für den Support.

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Das Thema „WordPress-Child-Theme | Plugins einbinden“ ist für neue Antworten geschlossen.