{"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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Nach der Installation des Texteditors stellen Sie eine Verbindung zu Ihrem FTP-Server her, um den Code zu &auml;ndern.&nbsp;<\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Die Funktionalit&auml;t einer WordPress-Website kann durch Plugins und Themes ge&auml;ndert werden.<\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><strong>Funktionen mit add_action() zu einem Action Hook hinzuf&uuml;gen<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><strong>Beispiel f&uuml;r Plugin-Code zur Anzeige von Text nach dem Footer jeder Seite<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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 class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <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. \n            <\/p><\/div>\n\n\n\n<\/p><p class=\"wp-block-paragraph\"><strong>Funktionen von einem Action Hook entfernen mit remove_action()<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Im n&auml;chsten Beispiel verhindern wir, dass der zus&auml;tzliche Fu&szlig;zeilentext bei Montagsbeitr&auml;gen erscheint.<\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><strong>Filter hinzuf&uuml;gen mit add_filter()<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><strong>Beispiel-Plugin zur &Auml;nderung eines Beitragsausz&uuml;ge<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><strong>Filter entfernen mit remove_filter()<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <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. \n            <\/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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Diese neue Datei wird alle Funktionen Ihres Plugins enthalten.<\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <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. \n            <\/p><\/div>\n\n\n\n<\/p><p class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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 class=\"wp-block-paragraph\">Herzlichen Gl&uuml;ckwunsch &ndash; Sie haben erfolgreich Ihr erstes WordPress-Plugin erstellt.<\/p><p class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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\/w=1024,h=1024,fit=scale-down\" 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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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>\n<\/div><h2 class=\"wp-block-heading\" id=\"h-fazit\"><strong>Fazit<\/strong><\/h2><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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":1},{"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-PH","link":"https:\/\/www.hostinger.com\/ph\/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-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-create-wordpress-plugin\/","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},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/tutorial-wordpress-plugins-crear-plugin-wordpress\/","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/tutorial-wordpress-plugins-crear-plugin-wordpress\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/tutorial-wordpress-plugins-crear-plugin-wordpress\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/criar-plugin-wordpress\/","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}]}}