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.