{"id":2408,"date":"2023-10-18T10:40:00","date_gmt":"2023-10-18T10:40:00","guid":{"rendered":"\/tutorials\/?p=2408"},"modified":"2025-12-18T13:46:43","modified_gmt":"2025-12-18T13:46:43","slug":"wordpress-plugin-erstellen","status":"publish","type":"post","link":"\/de\/tutorials\/wordpress-plugin-erstellen","title":{"rendered":"WordPress-Plugin erstellen: So geht es Schritt f\u00fcr Schritt"},"content":{"rendered":"<p>Das Content-Management-System <strong>WordPress<\/strong> verf&uuml;gt &uuml;ber eine riesige Sammlung von verf&uuml;gbaren Plugins, die benutzerdefinierte Funktionen einf&uuml;hren. Dar&uuml;ber hinaus k&ouml;nnen Plugins neue Funktionen zu Ihrer WordPress-Website hinzuf&uuml;gen, ohne den Hauptcode &auml;ndern zu m&uuml;ssen.<\/p><p>Obwohl es jede Menge kostenlose und Premium-Plugins zur Auswahl gibt, kann es Situationen geben, in denen Sie spezielle WordPress-Funktionen ben&ouml;tigen, die nicht verf&uuml;gbar sind. Daf&uuml;r m&uuml;ssen Sie m&ouml;glicherweise Ihr eigenes WordPress-Plugin erstellen.<\/p><p>In diesem WordPress-Plugin-Tutorial lernen Sie die Schritte zur Erstellung eines WordPress-Plugins. Wir werden uns auch mit den besten Codierungs- und Plugin-Erstellungsstandards und -praktiken befassen.<\/p><p>Dar&uuml;ber hinaus wird dieser Artikel die Unterschiede zwischen einem Plugin und einem Theme behandeln und wie sie auf der WordPress-Plattform funktionieren.<\/p><p>\n\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-was-sie-benotigen-um-ein-wordpress-plugin-zu-erstellen\"><strong>Was Sie ben&ouml;tigen, um ein WordPress-Plugin zu erstellen<\/strong><\/h2><p>Sie ben&ouml;tigen Folgendes, um ein WordPress-Plugin zu erstellen:<\/p><ul class=\"wp-block-list\">\n<li>Einen Texteditor<\/li>\n\n\n\n<li>FTP-Zugang zu Ihrem Hosting-Konto<\/li>\n\n\n\n<li>Eine funktionierende <a href=\"\/de\/tutorials\/wordpress-installieren\"><strong>WordPress Installation<\/strong><\/a><\/li>\n<\/ul><p>Sie ben&ouml;tigen einen Texteditor, um den Plugin-Code zu schreiben. Einige der beliebtesten HTML-Editoren sind <a href=\"https:\/\/notepad-plus-plus.org\/\" target=\"_blank\" rel=\"noopener\"><strong>Notepad++<\/strong><\/a> und <a href=\"https:\/\/atom.io\/\" target=\"_blank\" rel=\"noopener\"><strong>Atom<\/strong><\/a>.<\/p><p>Nach der Installation des Texteditors stellen Sie eine Verbindung zu Ihrem FTP-Server her, um den Code zu &auml;ndern.&nbsp;<\/p><p>Konfigurieren Sie als n&auml;chstes einen FTP-Client, um die Plugin-Datei auf Ihre Website hochzuladen. Wir empfehlen die Verwendung der FileZilla FTP Anwendung, da sie einfach einzurichten ist.<\/p><p>Zuletzt, stellen Sie sicher, dass Sie eine funktionierende und aktuelle WordPress-Installation haben. Es gibt mehrere M&ouml;glichkeiten, die WordPress-Kerndateien zu aktualisieren, wenn Sie automatische Aktualisierungen deaktiviert haben. Sichern Sie Ihre WordPress-Dateie<strong>n<\/strong>, bevor Sie die Website aktualisieren, um Datenverlust zu vermeiden.<\/p><p>Alternativ sollten Sie in Betracht ziehen, WordPress lokal zu installieren. Diese Methode erfordert keine Live-Website mit einem Domainnamen und einem Hosting-Plan, sodass Sie Ihr Plugin testen k&ouml;nnen, ohne dass Besucher es sofort sehen.<\/p><p>Ein Grundverst&auml;ndnis von PHP wird Ihren Plugin-Entwicklungsprozess f&ouml;rdern. Sie m&uuml;ssen eine benutzerdefinierte Funktion schreiben und bestehende Core-Funktionen von WordPress aufrufen. Sie sollten mindestens mit PHP-Benennungskonventionen und Dateistrukturierung vertraut sein.<\/p><h2 class=\"wp-block-heading\" id=\"h-wordpress-plugins-vs-wordpress-themes\"><strong>WordPress Plugins vs WordPress Themes<\/strong><\/h2><p>Die Funktionalit&auml;t einer WordPress-Website kann durch Plugins und Themes ge&auml;ndert werden.<\/p><p>WordPress-Themes haben eine <strong>functions.php<\/strong>-Datei, die im <strong>\/wp-includes\/ <\/strong>Ordner gespeichert ist und es Ihnen erm&ouml;glicht, benutzerdefinierten Code f&uuml;r neue Funktionen hinzuzuf&uuml;gen.<\/p><p>W&auml;hrend diese Methode f&uuml;r kleinere &Auml;nderungen funktioniert, ist sie unpraktisch f&uuml;r die Umsetzung gro&szlig;er &Auml;nderungen, die die gesamte Webseite betreffen.<\/p><p>Das liegt daran, dass die Funktionalit&auml;t, die in der <strong>functions.php<\/strong>-Datei gespeichert ist, davon abh&auml;ngt, ob das Theme aktiviert ist oder nicht. Das Deaktivieren des WordPress-Themes wird die vorgenommenen &Auml;nderungen in der genannten Datei r&uuml;ckg&auml;ngig machen und einen Fehler ausl&ouml;sen, wenn die Website die fehlenden Funktionen aufruft.<\/p><p>Sofern Sie kein Child-Theme verwenden, wird durch die Aktualisierung des Themes auch die <strong>functions.php <\/strong>Datei &uuml;berschrieben, was Sie dazu zwingt, den benutzerdefinierten WordPress-Code manuell wiederherzustellen.<\/p><p>Deshalb ist es hilfreich, ein individuelles Plugin zu erstellen. Dies erleichtert die &Auml;nderung des standardm&auml;&szlig;igen WordPress-Verhaltens, um Ihren Bed&uuml;rfnissen zu entsprechen.<\/p><p>Sie k&ouml;nnen WordPress-Plugins zu jeder WordPress-Installation hinzuf&uuml;gen. Die durch das Plugin eingef&uuml;hrten Funktionen bleiben auch dann funktionsf&auml;hig, wenn Sie die Themes wechseln. Dar&uuml;ber hinaus &uuml;berschreiben Aktualisierungen keine bestehenden Funktionen, was Ihnen Zeit und M&uuml;he spart.<\/p><h2 class=\"wp-block-heading\" id=\"h-was-sind-wordpress-hooks\"><strong>Was sind WordPress-Hooks?<\/strong><\/h2><p>WordPress-Plugins interagieren mit dem Kerncode unter Verwendung von Hooks. Es gibt zwei verschiedene Arten von <strong>Word<\/strong><strong>Press Hooks<\/strong>:<\/p><ul class=\"wp-block-list\">\n<li><strong>Action Hook<\/strong> &ndash; Funktionen hinzuf&uuml;gen oder entfernen.<\/li>\n\n\n\n<li><strong>Filter Hook<\/strong> &ndash; Daten &auml;ndern, die von Funktionen erzeugt werden.<\/li>\n<\/ul><h3 class=\"wp-block-heading\" id=\"h-aktionen-und-action-hooks\"><strong>Aktionen und Action Hooks<\/strong><\/h3><p>Eine Aktion ist eine PHP-Funktion, die durch einen spezifischen Action Hook aufgerufen wird, wenn ein Benutzer eine WordPress-Webseite besucht. Webentwickler k&ouml;nnen ihrer Liste von Aktionen eigene Funktionen hinzuf&uuml;gen oder vorbestehende entfernen, indem sie das <strong>wp_head() <\/strong>Action-Hook-Skript vor dem schlie&szlig;enden Tag (<strong>&lt;\/head&gt;<\/strong>) einer beliebigen Seite hinzuf&uuml;gen.<\/p><p>Action Hooks sind kontextabh&auml;ngig, was bedeutet, dass nicht alle WordPress-Seiten sie ben&ouml;tigen. Die <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\" target=\"_blank\" rel=\"noopener\"><strong>WordPress Plugin Aktionsreferenz<\/strong><\/a>-Seite bietet eine vollst&auml;ndige Liste von Action Hooks und den Kontexten, in denen sie aufgerufen werden.<\/p><p><strong>Funktionen mit add_action() zu einem Action Hook hinzuf&uuml;gen<\/strong><\/p><p>Das Hinzuf&uuml;gen von Funktionen zu einem Action Hook in einer Plugin-Datei erfordert den Aufruf der Funktion <strong>add_action()<\/strong> mit mindestens zwei Parametern.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Hook to the 'init' action, which is called after WordPress is finished loading the core code\nadd_action( 'init', 'add_Cookie' );\n\/\/ Set a cookie with the current time of day\nfunction add_Cookie() {\n setcookie(\"last_visit_time\", date(\"r\"), time()+60*60*24*30, \"\/\");\n}<\/pre><p><\/p><p>Der dritte optionale Parameter gibt die <strong>Priorit&auml;t<\/strong> der genannten Funktion an. Die Standardpriorit&auml;t betr&auml;gt 10, wodurch die benutzerdefinierte Funktion nach allen integrierten platziert wird.<\/p><p>Der erste Parameter ist der Name des<strong> Action Hooks <\/strong>, an den Sie die R&uuml;ckruffunktion anh&auml;ngen m&ouml;chten, w&auml;hrend der zweite Parameter den Namen der <strong>&nbsp;Funktion <\/strong>&nbsp;enth&auml;lt, die Sie ausf&uuml;hren m&ouml;chten.<\/p><p>Der vierte Parameter, der ebenfalls optional ist, enth&auml;lt die <strong>Anzahl der Argumente<\/strong> oder Parameter, die die benutzerdefinierte Funktion &uuml;bernehmen kann. Der Standardwert betr&auml;gt 1.<\/p><p><strong>Beispiel f&uuml;r Plugin-Code zur Anzeige von Text nach dem Footer jeder Seite<\/strong><\/p><p>Dieses Beispiel-Plugin ruft den <strong>&nbsp;wp_footer()<\/strong> Action Hook vor dem schlie&szlig;enden <strong>&lt;\/body&gt;<\/strong> Tag jeder Seite auf und f&uuml;gt eine neue Funktion namens <strong>mfp_Add_Text()<\/strong> hinzu. Da es Teil eines Plugins ist, wird die Funktion auch nach dem Wechseln von&nbsp; Themes funktionieren.<\/p><p>Speichern Sie dieses Beispiel als eine PHP-Datei und laden Sie es in den Ordner <strong>Plugins<\/strong> hoch.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n\/*\n\nPlugin Name: Add Text To Footer\n\n*\/\n\n\/\/ Hook the 'wp_footer' action hook, add the function named 'mfp_Add_Text' to it\n\nadd_action(\"wp_footer\", \"mfp_Add_Text\");\n\n\/\/ Define 'mfp_Add_Text'\n\nfunction mfp_Add_Text()\n\n{\n\necho \"&lt;p style='color: black;'&gt;After the footer is loaded, my text is added!&lt;\/p&gt;\";\n\n}<\/pre><p>Der folgende Screenshot zeigt das Plugin in Aktion, nachdem es &uuml;ber das WordPress-Admin-Panel aktiviert wurde:<\/p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"137\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-40.png\/public\" alt=\"\" class=\"wp-image-2417\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-40.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-40.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-40.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>\n\n\n<div><p class=\"important\"><strong>Wichtig!<\/strong> PHP wertet das gesamte Skript aus, bevor es ausgef&uuml;hrt wird. Das Schreiben von add_action() Aufrufen am Anfang der Datei in ihrer Ausf&uuml;hrungsreihenfolge und dann das Definieren Ihrer Funktionen in der gleichen Reihenfolge darunter, wird die Datei leichter lesbar machen. <\/p><\/div>\n\n\n\n<\/p><p><strong>Funktionen von einem Action Hook entfernen mit remove_action()<\/strong><\/p><p>Um eine Aktion von einem Action Hook zu entfernen, schreiben Sie eine neue Funktion <strong>remove_action()<\/strong> und rufen Sie dann die von Ihnen geschriebene Funktion mit <strong>add_action()<\/strong> auf.<\/p><p>Die Funktion <strong>remove_action()<\/strong> sollte mindestens zwei Parameter enthalten.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Hook the 'init' action, which is called after WordPress is finished loading the core code, add the function 'remove_My_Meta_Tags'\n\nadd_action( 'init', 'remove_My_Meta_Tags' );\n\n\/\/ Remove the 'add_My_Meta_Tags' function from the wp_head action hook\n\nfunction remove_My_Meta_Tags()\n\n{\n\nremove_action( 'wp_head', 'add_My_Meta_Tags');\n\n}<\/pre><p>Der erste Parameter ist der Name des<strong> Action Hooks <\/strong>, an den die Funktion angeh&auml;ngt ist, w&auml;hrend der zweite Parameter den Namen der<strong> Funktion <\/strong>enth&auml;lt, die Sie entfernen m&ouml;chten.<\/p><p>Der dritte optionale Parameter gibt die <strong>Priorit&auml;t<\/strong> der urspr&uuml;nglichen Funktion an. Es muss identisch mit der Priorit&auml;t sein, die urspr&uuml;nglich definiert wurde, als die Aktion zum Action Hook hinzugef&uuml;gt wurde. Wenn Sie in der benutzerdefinierten Funktion keine Priorit&auml;t festgelegt haben, f&uuml;gen Sie diesen Parameter nicht hinzu.<\/p><p>Im n&auml;chsten Beispiel verhindern wir, dass der zus&auml;tzliche Fu&szlig;zeilentext bei Montagsbeitr&auml;gen erscheint.<\/p><p>Eine M&ouml;glichkeit besteht darin, die PHP <strong>date()<\/strong> Funktion zu verwenden, um den aktuellen Tag zu ermitteln, gefolgt von Bedingungstags, um zu &uuml;berpr&uuml;fen, ob es Montag ist. Nach dem Parsen der Informationen wird die Funktion <strong>remove_action()<\/strong> in jedem Beitrag ausgef&uuml;hrt, der montags ver&ouml;ffentlicht wird.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n\/\/ Hook the 'wp_footer' action, run the function named 'mfp_Add_Text()'\n\nadd_action(\"wp_footer\", \"mfp_Add_Text\");\n\n\/\/ Hook the 'wp_head' action, run the function named 'mfp_Remove_Text()'\n\nadd_action(\"wp_head\", \"mfp_Remove_Text\");\n\n\/\/ Define the function named 'mfp_Add_Text('), which just echoes simple text\n\nfunction mfp_Add_Text()\n\n{\n\necho \"&lt;p style='color: #FFF;'&gt;After the footer is loaded, my text is added!&lt;\/p&gt;\";\n\n}\n\n\/\/ Define the function named 'mfp_Remove_Text()' to remove our previous function from the 'wp_footer' action\n\nfunction mfp_Remove_Text()\n\n{\n\nif (date(\"l\") === \"Monday\") {\n\n\/\/ Target the 'wp_footer' action, remove the 'mfp_Add_Text' function from it\n\nremove_action(\"wp_footer\", \"mfp_Add_Text\");\n\n}\n\n}<\/pre><h3 class=\"wp-block-heading\" id=\"h-filter-und-filter-hooks\"><strong>Filter und Filter Hooks<\/strong><\/h3><p>Ein Filter ist eine der PHP-Funktionen, die von einem bestimmten Filter Hook aufgerufen wird und Daten modifiziert, die von vorhandenen Funktionen zur&uuml;ckgegeben werden. Wie Action Hooks sind auch Filter Hooks kontextabh&auml;ngig.<\/p><p>Die vollst&auml;ndige Liste der Filter Hooks und die Zusammenh&auml;nge, in denen sie aufgerufen werden, sind auf der Seite <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Filter_Reference\" target=\"_blank\" rel=\"noopener\"><strong>WordPress Plugin Filter Referenz<\/strong><\/a> verf&uuml;gbar.<\/p><p><strong>Filter hinzuf&uuml;gen mit add_filter()<\/strong><\/p><p>Um eine Filterfunktion zu einem Filter Hook innerhalb einer Plugin-Datei hinzuzuf&uuml;gen, muss die Funktion <strong>add_filter()<\/strong> mit mindestens zwei Parametern aufgerufen werden.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Hook the 'the_content' filter hook (content of any post), run the function named 'mfp_Fix_Text_Spacing'\n\nadd_filter(\"the_content\", \"mfp_Fix_Text_Spacing\");\n\n\/\/ Automatically correct double spaces from any post\n\nfunction mfp_Fix_Text_Spacing($the_Post)\n\n{\n\n$the_New_Post = str_replace(\" \", \" \", $the_Post);\n\nreturn $the_New_Post;\n\n}<\/pre><p>Der erste Parameter ist der Name des <strong>&nbsp;Filter Hooks <\/strong>, zu dem Sie den R&uuml;ckruf hinzuf&uuml;gen m&ouml;chten, w&auml;hrend der zweite Parameter den Namen der <strong>&nbsp;Funktion <\/strong>&nbsp;enth&auml;lt, die Sie ausf&uuml;hren m&ouml;chten, wenn der Filter angewendet wird.<\/p><p>Der dritte optionale Parameter gibt die <strong>Priorit&auml;t<\/strong> der genannten Funktion an. Die Standardpriorit&auml;t betr&auml;gt 10, womit die benutzerdefinierte Funktion nach allen Standardfunktionen eingef&uuml;gt wird.<\/p><p>Der vierte optionale Parameter enth&auml;lt die <strong>Anzahl der Argumente<\/strong> oder Parameter, die die benutzerdefinierte Filterfunktion &uuml;bernehmen kann. Der Standardwert betr&auml;gt 1.<\/p><p><strong>Beispiel-Plugin zur &Auml;nderung eines Beitragsausz&uuml;ge<\/strong><\/p><p>WordPress hat eine Funktion, die Beitragsausz&uuml;ge abruft und <strong>get_the_excerpt()<\/strong> hei&szlig;t. Es ist auch ein Filter Hook. Das Hinzuf&uuml;gen dieses Filters nach dem Abrufen des Auszugs wird den Text &auml;ndern, bevor die WordPress-Seite ihn anzeigt.<\/p><p>Das folgende Beispielplugin definiert eine Filterfunktion, die den Auszug als einzigen Eingabeparameter nimmt, f&uuml;gt einige Text vor ihm hinzu und gibt jedes Mal den neuen Wert zur&uuml;ck, wenn das Skript die Funktion <strong>get_the_excerpt()<\/strong> aufruft.<\/p><p>Da der R&uuml;ckgabewert der Funktion <strong>get_the_excerpt()<\/strong> der tats&auml;chliche Auszugstext ist, wird das Plugin automatisch den neuen Wert als Parameter der Funktion <strong>$old_Excerpt<\/strong> eingeben, wenn es mit <strong>add_filter()<\/strong> aufgerufen wird. Die Funktion, die das Plugin definiert, <strong>muss den neuen Wert zur&uuml;ckgeben<\/strong>.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n\/*\n\nPlugin Name: Add Excerpt\n\n*\/\n\n\/\/ Hook the get_the_excerpt filter hook, run the function named mfp_Add_Text_To_Excerpt\n\nadd_filter(\"get_the_excerpt\", \"mfp_Add_Text_To_Excerpt\");\n\n\/\/ Take the excerpt, add some text before it, and return the new excerpt\n\nfunction mfp_Add_Text_To_Excerpt($old_Excerpt)\n\n{\n\n$new_Excerpt = \"&lt;b&gt;Excerpt: &lt;\/b&gt;\" . $old_Excerpt;\n\nreturn $new_Excerpt;\n\n}<\/pre><p><strong>Filter entfernen mit remove_filter()<\/strong><\/p><p>Einen Filter zu entfernen ist viel einfacher als eine Aktion zu entfernen, da WordPress Ihnen erm&ouml;glicht, die Funktion <strong>remove_filter() <\/strong>&nbsp;aufzurufen, ohne eine neue definieren zu m&uuml;ssen.<\/p><p>In dem folgenden Beispiel werden wir den zus&auml;tzlichen Auszugstext entfernen, wenn der aktuelle Tag Donnerstag ist. Wir werden die Funktion <strong>remove_filter()<\/strong> mit mindestens zwei Parametern verwenden.<\/p><p>Der erste sollte den Filter Hook enthalten, an den die Funktion angeh&auml;ngt ist. Der zweite Parameter sollte der Name des Filters sein, den Sie entfernen m&ouml;chten. F&uuml;gen Sie einen Priorit&auml;tsparameter hinzu, wenn Sie diesen bei der Erstellung der Funktion definiert haben.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Hook the get_the_excerpt filter hook, run the function named mfp_Add_Text_To_Excerpt\n\nadd_filter(\"get_the_excerpt\", \"mfp_Add_Text_To_Excerpt\");\n\n\/\/ If today is a Thursday, remove the filter from the_excerpt()\n\nif (date(\"l\") === \"Thursday\") {\n\nremove_filter(\"get_the_excerpt\", \"mfp_Add_Text_To_Excerpt\");\n\n}\n\n\/\/ Take the excerpt, add some text before it, and return the new excerpt\n\nfunction mfp_Add_Text_To_Excerpt($old_Excerpt)\n\n{\n\n$new_Excerpt = \"&lt;b&gt;Excerpt: &lt;\/b&gt;\" . $old_Excerpt;\n\nreturn $new_Excerpt;\n\n}<\/pre><p>Jetzt, da Sie ein grundlegendes Verst&auml;ndnis von Hooks und Filtern haben, werden wir ein einfaches WordPress-Plugin erstellen, das eine neue Seite mit einem Link auf dem Admin Control Panel hinzuf&uuml;gt.<\/p><p>\n\n\n<div><p class=\"important\"><strong>Wichtig!<\/strong> Die Verwendung einer WordPress-Staging-Site zum Testen neuer Plugins wird Ihnen helfen, Fehler zu vermeiden, die zu Ausfallzeiten f&uuml;hren k&ouml;nnen. Es gibt zwei M&ouml;glichkeiten, eine Staging-Umgebung aufzubauen &ndash; manuell oder mit einem Plugin wie WP Staging. Alternativ installieren Sie WordPress lokal auf Ihrem Computer. <\/p><\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-schritt-1-speichern-des-plugins\"><strong>Schritt 1: Speichern des Plugins<\/strong><\/h2><p>Der erste Schritt zur Erstellung eines neuen Plugins besteht darin, einen Ordner f&uuml;r seine Dateien anzulegen. Der Name des Ordners sollte einzigartig und beschreibend sein. &Uuml;berpr&uuml;fen Sie die Namen der anderen Plugin-Ordner innerhalb von <strong>\/wp-content\/plugins\/ <\/strong>, um sicherzustellen, dass der neue Name noch nicht verwendet wird.<\/p><p>Verwenden Sie einen FTP-Client, um eine Verbindung zu Ihrem Hosting-Konto herzustellen, um den Datei-Upload-Prozess zu erleichtern. Navigieren Sie zu <strong>wp-content <\/strong>-&gt; <strong>plugins<\/strong> aus dem Hauptverzeichnis von WordPress. Erstellen Sie dann einen neuen Ordner mit dem Namen <strong>my-new-plugin <\/strong>im <strong>plugins <\/strong>Ordner.<\/p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"285\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-47.png\/public\" alt=\"Verwenden Sie einen FTP-Client, um eine Verbindung zu Ihrem Hosting-Konto herzustellen, um den Datei-Upload-Prozess zu erleichtern.\" class=\"wp-image-2446\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-47.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-47.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-47.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Das &Uuml;ben der Dateiverwaltung w&auml;hrend der WordPress-Entwicklung wird den Prozess auf lange Sicht viel einfacher machen. Teilen Sie die Dateien aufgrund ihrer Funktionalit&auml;t in Unterordner ein.<\/p><p>Speichern Sie zum Beispiel die CSS-, PHP- und JavaScript-Dateien in separaten Ordnern. Wenn Sie Ihr individuelles WordPress-Plugin entwickeln, wird es einfacher sein, spezifische Dateien zu finden, wenn alles ein eigenes Verzeichnis hat.<\/p><h2 class=\"wp-block-heading\" id=\"h-schritt-2-erstellen-der-ersten-datei\"><strong>Schritt 2: Erstellen der ersten Datei<\/strong><\/h2><p>Die Haupt-Plugin-Datei enth&auml;lt die Informationen, die WordPress ben&ouml;tigt, um Ihr Plugin in der Plugin-Liste anzuzeigen, wo Sie es aktivieren k&ouml;nnen.<\/p><p>Erstellen Sie eine neue PHP-Datei namens <strong>my-first-plugin.php<\/strong> im Ordner, den Sie zuvor erstellt haben. Diese Haupt-Plugin-Datei enth&auml;lt Kommentare mit zus&auml;tzlichen Informationen, die WordPress lesen oder anzeigen kann.<\/p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"345\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-42.png\/public\" alt=\"Erstellen Sie eine neue PHP-Datei namens my-first-plugin.php im Ordner, den Sie zuvor erstellt haben. \" class=\"wp-image-2430\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-42.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-42.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-42.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Dann klicken Sie mit der rechten Maustaste auf die Datei und w&auml;hlen Sie <strong>Anzeigen\/Bearbeiten<\/strong>, um den folgenden Code mit einem HTML-Editor hinzuzuf&uuml;gen:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n\/*\n\nPlugin Name: My First Plugin\n\nDescription: This is my first plugin! It makes a new admin menu link!\n\nAuthor: Your Name\n\n*\/<\/pre><p>Sie k&ouml;nnen sich auf dieses <a href=\"https:\/\/www.php.net\/basic-syntax.instruction-separation\" target=\"_blank\" rel=\"noopener\"><strong>PHP-Handbuch<\/strong><\/a> beziehen, um zu verstehen, warum der Abschlusstag <strong>?&gt;<\/strong> hier nicht notwendig ist.<\/p><p>Speichern Sie die Datei. Navigieren Sie dann zum <strong>Plugins <\/strong>Abschnitt Ihres WordPress-Dashboards. Wenn WordPress die neue Datei korrekt gelesen hat, sehen Sie <strong>My first Plugin<\/strong> auf der Liste.<\/p><h2 class=\"wp-block-heading\" id=\"h-schritt-3-schreiben-der-plugin-funktionen\"><strong>Schritt 3: Schreiben der Plugin-Funktionen<\/strong><\/h2><p>Bevor wir mit dem Schreiben der Funktionen f&uuml;r das Plugin beginnen, wird dringend empfohlen, allen Dateien, Funktionen und Variablen einen einzigartigen Pr&auml;fix in ihrem Namen zu geben, um Konflikte mit anderen Plugins zu vermeiden. In unserem Beispiel verwenden wir das Pr&auml;fix <strong>mfp<\/strong>, was kurz f&uuml;r <strong>My first Plugin<\/strong> steht.<\/p><p>Erstellen Sie einen neuen Ordner mit dem Namen <strong>Includes <\/strong>im Hauptverzeichnis des Plugins. Wir werden es zur Speicherung von Hilfsdateien verwenden, die von der Hauptdatei genutzt werden. In diesem Ordner, erstellen Sie eine PHP-Datei und nennen Sie sie <strong>mfp-functions.php<\/strong>. Geben Sie ihm den &Ouml;ffnungs-Tag <strong>&lt;?php<\/strong> in der ersten Zeile.<\/p><p>Diese neue Datei wird alle Funktionen Ihres Plugins enthalten.<\/p><p>Wir m&uuml;ssen <strong>mfp-functions.php<\/strong> in die Haupt-Plugin-Datei einf&uuml;gen, damit die anderen Plugin-Dateien die Funktionen nutzen k&ouml;nnen, die sie definiert. Verwenden Sie <strong>require_once<\/strong>, um sicherzustellen, dass das Plugin nur funktioniert, wenn die Funktionen-Datei vorhanden ist.<\/p><p>Bearbeiten Sie <strong>my-first-plugin.php <\/strong>wie unten gezeigt. Dann speichern Sie sie und laden Sie die Datei erneut hoch und &uuml;berschreiben die vorherige Version, wenn danach gefragt wird.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n\/*\n\nPlugin Name: My First Plugin\n\nDescription: This is my first plugin! It makes a new admin menu link!\n\nAuthor: Your Name\n\n*\/\n\n\/\/ Include mfp-functions.php, use require_once to stop the script if mfp-functions.php is not found\n\nrequire_once plugin_dir_path(__FILE__) . 'includes\/mfp-functions.php';<\/pre><p>Die WordPress-Funktion <strong>plugin_dir_path(__FILE__)<\/strong> erm&ouml;glicht es Ihnen, Dateien aus Ihrem Plugin-Ordner einzuf&uuml;gen, indem sie den vollst&auml;ndigen Pfad zu dem Verzeichnis bereitstellt, das das neue Plugin speichert.<\/p><p>Nun kehren Sie zu der Datei <strong>mfp-functions.php<\/strong> im Verzeichnis <strong>Includes<\/strong> zur&uuml;ck. Da unser Plugin einen neuen Top-Level-Link zum Navigationsmen&uuml; des Admin Control Panels hinzuf&uuml;gt, verwenden wir eine benutzerdefinierte Funktion namens <strong>mfp_Add_My_Admin_Link()<\/strong>. F&uuml;gen Sie den untenstehenden Codeblock zur Datei <strong>mfp-functions.php<\/strong> hinzu:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\n\/*\n\n* Add my new menu to the Admin Control Panel\n\n*\/\n\n\/\/ Hook the 'admin_menu' action hook, run the function named 'mfp_Add_My_Admin_Link()'\n\nadd_action( 'admin_menu', 'mfp_Add_My_Admin_Link' );\n\n\/\/ Add a new top level menu link to the ACP\n\nfunction mfp_Add_My_Admin_Link()\n\n{\n\nadd_menu_page(\n\n'My First Page', \/\/ Title of the page\n\n'My First Plugin', \/\/ Text to show on the menu link\n\n'manage_options', \/\/ Capability requirement to see the link\n\n'includes\/mfp-first-acp-page.php' \/\/ The 'slug' - file to display when clicking the link\n\n);\n\n}<\/pre><p>\n\n\n<div><p class=\"important\"><strong>Wichtig!<\/strong> Gruppieren Sie &auml;hnliche Funktionen zusammen und f&uuml;gen Sie eine Beschreibung &uuml;ber jeder von ihnen mit einem mehrzeiligen Kommentar hinzu. Dies wird zuk&uuml;nftige Plugin-Updates und Fehlersuchen erleichtern. <\/p><\/div>\n\n\n\n<\/p><p><strong>mfp_Add_My_Admin_Link()<\/strong> verwendet die integrierte WordPress-Funktion <strong>add_menu_page()<\/strong> mit mindestens vier Parametern in der folgenden Reihenfolge:<\/p><ul class=\"wp-block-list\">\n<li><strong>Seitentitel<\/strong>: Der auf dem Browser-Tab angezeigte Seitenname.<\/li>\n\n\n\n<li><strong>Men&uuml;titel<\/strong>: Der Text, der f&uuml;r den Men&uuml;punkt verwendet wird. In unserem Beispiel ist es der Name des Plugins.<\/li>\n\n\n\n<li><strong>F&auml;higkeit<\/strong>: Benutzerf&auml;higkeitsanforderung zur Ansicht des Plugin-Men&uuml;s. Hier k&ouml;nnen nur Benutzer mit der F&auml;higkeit <strong>manage_options<\/strong> auf die verlinkte Seite zugreifen.<\/li>\n\n\n\n<li><strong>Men&uuml;-Slug<\/strong>: Die Datei, die verwendet wird, um die eigentliche Seite anzuzeigen. Wir werden die verlinkte Datei <strong>mfp-first-acp-page.php <\/strong>&nbsp;im <strong>Includes <\/strong>&nbsp;Ordner im n&auml;chsten Abschnitt erstellen.<\/li>\n\n\n\n<li><strong>Funktion (optional)<\/strong>: Die Funktion, die den Seiteninhalt ausgibt.<\/li>\n<\/ul><p>Die Anbringung der benutzerdefinierten Funktion mit <strong>add_action()<\/strong> erm&ouml;glicht es dem Plugin, den Action Hook unter bestimmten Umst&auml;nden aufzurufen. Das Hinzuf&uuml;gen von <strong>admin_menu<\/strong> als ersten Parameter ruft die Funktion auf, wenn ein Benutzer das Admin-Men&uuml; aufruft. Gleichzeitig ist <strong>mfp_Add_My_Admin_Link<\/strong> die Funktion, die ausgef&uuml;hrt wird, da sie als zweiter Parameter angegeben ist.<\/p><p>Laden Sie schlie&szlig;lich die <strong>mfp-functions.php<\/strong> Plugin-Datei in den <strong>Includes<\/strong> Ordner hoch.<\/p><h2 class=\"wp-block-heading\" id=\"h-schritt-4-erstellen-der-plugin-admin-seite\"><strong>Schritt 4: Erstellen der Plugin-Admin-Seite<\/strong><\/h2><p>Nachdem die Funktionen des Plugins definiert wurden, ist es Zeit, die Seite zu erstellen, zu der uns der Men&uuml;button f&uuml;hren wird. Erstellen Sie eine neue PHP-Datei mit dem Namen <strong>mfp-first-acp-page.php <\/strong>im Unterordner <strong>Includes <\/strong>und f&uuml;gen Sie den folgenden Code hinzu:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;div class=\"wrap\"&gt;\n\n&lt;h1&gt;Hello!&lt;\/h1&gt;\n\n&lt;p&gt;This is my plugin's first page&lt;\/p&gt;\n\n&lt;\/div&gt;<\/pre><p>Beim Erstellen von Admin-Seiten empfiehlt WordPress, Ihr eigenes HTML mit einem <strong>&lt;div&gt; <\/strong>Tag zu umschlie&szlig;en und ihm eine <strong>&bdquo;wrap&rdquo;-<\/strong> Klasse zu geben, um sicherzustellen, dass all Ihr Inhalt an der richtigen Stelle erscheint. Dies hilft auch dabei, Unordnung im Code zu reduzieren.<\/p><p>Gehen Sie schlie&szlig;lich zum Abschnitt <strong>Plugins<\/strong> auf Ihrem WordPress-Dashboard und aktivieren Sie das neue Plugin. Wenn der Prozess erfolgreich ist, erscheint der Link zum Administrationspanel Ihres allerersten Plugins am Ende des Navigationsmen&uuml;s.<\/p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"400\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-49.png\/public\" alt=\"Ein Screenshot aus dem WordPress-Dashboard, der Ihr Plugin am unteren Ende des Navigationsmen&uuml;s zeigt\" class=\"wp-image-2449\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-49.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-49.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-49.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><p>Herzlichen Gl&uuml;ckwunsch &ndash; Sie haben erfolgreich Ihr erstes WordPress-Plugin erstellt.<\/p><p>Wenn Sie das Plugin auf einer Testseite erstellt haben, m&uuml;ssen Sie das Plugin installieren auf der Live-Seite. Die folgenden Schritte zeigen Ihnen, wie es geht:<\/p><ul class=\"wp-block-list\">\n<li>In FileZilla, klicken Sie mit der rechten Maustaste auf den Ordner <strong>my-new-plugin<\/strong> und w&auml;hlen Sie <strong>Herunterladen<\/strong> aus. Dann komprimieren Sie die Dateien in ein ZIP-Archiv.<\/li>\n<\/ul><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"314\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-45.png\/public\" alt=\"Ein Screenshot von FileZilla zeigt, wie Sie Ihr Plugin herunterladen k&ouml;nnen\" class=\"wp-image-2439\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-45.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-45.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-45.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><ul class=\"wp-block-list\">\n<li>Navigieren Sie zum <strong>Plugins <\/strong>Men&uuml; von Ihrem WordPress Dashboard. Dann klicken Sie auf <strong>Neu hinzuf&uuml;gen<\/strong>.<\/li>\n\n\n\n<li>Klicken Sie auf <strong>Plugin hochladen<\/strong> und w&auml;hlen Sie die ZIP-Datei Ihres Plugins aus.<\/li>\n<\/ul><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"294\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-46.png\/public\" alt=\"Ein Screenshot aus dem WordPress-Dashboard zeigt, wo Sie Ihr Plugin hochladen k&ouml;nnen\" class=\"wp-image-2440\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-46.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-46.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2023\/10\/image-46.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><ul class=\"wp-block-list\">\n<li>W&auml;hlen Sie <strong>Jetzt installieren<\/strong> um den Installationsvorgang zu starten.<\/li>\n<\/ul><h2 class=\"wp-block-heading\" id=\"h-hohe-standards-und-praktiken-bei-der-erstellung-von-benutzerdefinierten-plugins\"><strong>Hohe Standards und Praktiken bei der Erstellung von benutzerdefinierten Plugins<\/strong><\/h2><p>Da die Bed&uuml;rfnisse Ihrer Website st&auml;ndig weiterentwickeln, m&uuml;ssen Sie den Code des Plugins &uuml;berpr&uuml;fen, um Updates und Sicherheitspatches zu implementieren.<\/p><p>Folgen Sie daher bereits von Anfang an den bew&auml;hrten Methoden f&uuml;r die Entwicklung von Plugins. Dies wird den gesamten Prozess f&uuml;r Sie und alle Webentwickler, mit denen Sie in der Zukunft zusammenarbeiten k&ouml;nnten, erleichtern.<\/p><p>Zus&auml;tzlich finden Sie die <a href=\"\/de\/tutorials\/wordpress-plugins\/\"><strong>besten Beispiele f&uuml;r WordPress-Plugins<\/strong><\/a> zur Inspiration. Schauen Sie sich ihren Quellcode an, wie sie ihre Ordner organisieren und andere Praktiken, die Sie anwenden k&ouml;nnen, wenn Sie WordPress-Plugins erstellen.<\/p><p>Hier sind einige der besten Codierungs- und Plugin-Entwicklungspraktiken, um die Erstellung Ihres ersten WordPress-Plugins zu unterst&uuml;tzen:<\/p><ul class=\"wp-block-list\">\n<li><strong>Entwickeln und testen Sie WP-Plugins<\/strong> in einer Staging-Umgebung<strong>. <\/strong>Auf diese Weise besteht kein Risiko, die Seite zu besch&auml;digen, wenn ein Plugin einen fehlerhaften Code hat.<\/li>\n\n\n\n<li><strong>Bauen Sie eine logische Ordnerstruktur auf.<\/strong> Erstellen Sie Unterordner f&uuml;r jede Funktion und teilen Sie den Code anhand ihrer Zwecke oder Sprachtypen in separate Dateien, um Unordnung zu vermeiden.<\/li>\n\n\n\n<li><strong>Benennen Sie jede Datei, jeden Ordner und jedes Element mit Vorsicht.<\/strong> Verwenden Sie einzigartige Pr&auml;fixe, damit sie nicht mit den Dateinamen anderer Plugins oder dem WordPress-Kern kollidieren.<\/li>\n\n\n\n<li><strong>F&uuml;gen Sie Kommentare hinzu, um jede Funktion zu beschriften.<\/strong> Dies erm&ouml;glicht es Ihnen und anderen Entwicklern, Ihren Code zu verstehen, wenn Sie ihn aktualisieren oder debuggen.<\/li>\n\n\n\n<li><strong>Erstellen Sie eine Dokumentation<\/strong>. Dies ist besonders vorteilhaft, wenn Sie Plugins mit komplexer Funktionalit&auml;t f&uuml;r eine gro&szlig;e Anzahl von Benutzern erstellen.<\/li>\n\n\n\n<li><strong>Verwenden Sie Versionskontrollsoftware, um &Auml;nderungen in Ihrem Code nachzuverfolgen.<\/strong> Zu wissen, wer was hinzugef&uuml;gt hat, wird helfen, Auseinandersetzungen zwischen Updates zu vermeiden und die Anzahl der Fehler zu reduzieren.<\/li>\n\n\n\n<li><strong>Beziehen Sie sich<\/strong> auf den <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/best-practices\/coding-standards\/\" target=\"_blank\" rel=\"noopener\"><strong>WordPress-Kodex<\/strong><\/a> <strong>f&uuml;r sprachspezifische Programmierstandards.<\/strong> Stellen Sie sicher, dass Sie sie einhalten, wenn Sie an einem Projekt zusammenarbeiten.<\/li>\n\n\n\n<li><strong>Aktivieren Sie WP_DEBUG oder verwenden Sie ein Debugging-Tool bei der Entwicklung von Plugins.<\/strong> Dadurch wird das Auffinden von Fehlern erleichtert und der gesamte Prozess des Plugin-Baus beschleunigt.<\/li>\n<\/ul><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"\/de\/wordpress-hosting\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2024\/06\/DE-New-WP_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-4104\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2024\/06\/DE-New-WP_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2024\/06\/DE-New-WP_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/29\/2024\/06\/DE-New-WP_in-text-banner.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-fazit\"><strong>Fazit<\/strong><\/h2><p>Die Entwicklung eines benutzerdefinierten Plugins ist eine M&ouml;glichkeit, einer WordPress-Seite Funktionen hinzuzuf&uuml;gen, die die derzeit verf&uuml;gbaren Plugins nicht bieten. Es kann ein einfaches Plugin sein, das kleinere &Auml;nderungen implementiert, oder ein komplexes Plugin, das die gesamte Website modifiziert.<\/p><p>Um zusammenzufassen, hier sind die Schritte zur Erstellung eines WordPress-Plugins von Grund auf:<\/p><ul class=\"wp-block-list\">\n<li>Erstellen Sie einen Ordner zum Speichern der Plugin-Dateien.<\/li>\n\n\n\n<li>Erstellen Sie die Hauptdatei f&uuml;r Ihr Plugin.<\/li>\n\n\n\n<li>F&uuml;gen Sie Code zu mehreren Dateien f&uuml;r Plugin-Funktionen hinzu.<\/li>\n\n\n\n<li>Bauen Sie die Admin-Seite des Plugins.<\/li>\n<\/ul><p>Wie bei jeder anderen F&auml;higkeit, ben&ouml;tigt es Zeit, um gut darin zu werden, WordPress-Plugins zu erstellen. Mit gen&uuml;gend &Uuml;bung werden Sie in der Lage sein, Plugins zu erstellen und sie zum Download im WordPress Plugin Verzeichnis bereitzustellen oder sie sogar auf einem der Marktpl&auml;tze zu verkaufen.<\/p><p>Wir hoffen, dass dieser Artikel Ihnen gezeigt hat, wie man ein WordPress-Plugin erstellt. Wenn Sie Fragen oder Anregungen haben, k&ouml;nnen Sie uns gerne einen Kommentar hinterlassen.<\/p><h2 class=\"wp-block-heading\" id=\"h-erstellen-sie-ein-wordpress-plugin-faq\"><strong>Erstellen Sie ein WordPress Plugin FAQ<\/strong><\/h2><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-694405c387ed1\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>K&ouml;nnen Sie Geld verdienen, indem Sie WordPress-Plugins erstellen?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Ja, Sie k&ouml;nnen Plugins entweder &uuml;ber Ihre eigene Webseite verkaufen oder auf einem Plugin-Marktplatz.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-694405c387ed4\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>Wer kann ein WordPress-Plugin erstellen?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Jeder, der wei&szlig;, wie man programmiert, kann ein WordPress-Plugin erstellen. Sie k&ouml;nnen ein Theme verwenden, um ein Plugin zu erstellen, wenn Sie grundlegende PHP-Kenntnisse haben.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-694405c387ed5\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>Sind WordPress-Plugins in PHP geschrieben?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>WordPress-Plugins werden h&auml;ufig in PHP geschrieben, aber Sie m&uuml;ssen auch einige grundlegende HTML- und CSS-Kenntnisse haben, um die Ausgabe des Plugins ordnungsgem&auml;&szlig; zu verwalten.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Das Content-Management-System WordPress verf&uuml;gt &uuml;ber eine riesige Sammlung von verf&uuml;gbaren Plugins, die benutzerdefinierte Funktionen einf&uuml;hren. Dar&uuml;ber hinaus k&ouml;nnen Plugins neue Funktionen zu Ihrer WordPress-Website hinzuf&uuml;gen, ohne den Hauptcode &auml;ndern zu m&uuml;ssen. Obwohl es jede Menge kostenlose und Premium-Plugins zur Auswahl gibt, kann es Situationen geben, in denen Sie spezielle WordPress-Funktionen ben&ouml;tigen, die nicht verf&uuml;gbar sind. [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/de\/tutorials\/wordpress-plugin-erstellen\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":392,"featured_media":2442,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"WordPress-Plugin erstellen: So geht es Schritt f\u00fcr Schritt","rank_math_description":"In diesem Tutorial lernen Sie die Schritte zur Erstellung eines WordPress-Plugins und die besten Codierungs- und Plugin-Erstellungsstandards und -praktiken.","rank_math_focus_keyword":"wordpress plugin erstellen","footnotes":""},"categories":[20],"tags":[],"class_list":["post-2408","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/criar-plugin-wordpress","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/creer-un-plugin-wordpress","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/tutorial-wordpress-plugins-crear-plugin-wordpress","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/membuat-plugin-wordpress","default":0},{"locale":"de-DE","link":"https:\/\/www.hostinger.com\/de\/tutorials\/wordpress-plugin-erstellen","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/joomla-vs-wordpress-cms-utilizar-4","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/joomla-vs-wordpress-cms-utilizar-4","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/tutorial-wordpress-plugins-crear-plugin-wordpress","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/criar-plugin-wordpress","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-create-wordpress-plugin","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/posts\/2408","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/users\/392"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/comments?post=2408"}],"version-history":[{"count":15,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/posts\/2408\/revisions"}],"predecessor-version":[{"id":7771,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/posts\/2408\/revisions\/7771"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/media\/2442"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/media?parent=2408"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/categories?post=2408"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/de\/tutorials\/wp-json\/wp\/v2\/tags?post=2408"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}