5
(4)

Eigenes Wordpress Plugin einfach erstellen

Erstellt / aktualisiert

wichtige Informationen...

Affiliate - Offenlegung

Auf meiner Seite verwende ich sogenannte Affiliate-Links, diese sind mit einem gekennzeichnet, damit du diese auch direkt erkennen kannst.
Sobald du über so einen Link das Produkt kaufen würdest, erhalte ich möglicherweise eine Provision vom jeweiligen Anbieter. Außerdem entstehen für Dich natürlich keine zusätzlichen Kosten!
Mich unterstützt du damit aber enorm und trägst dazu bei, dass es auch in Zukunft weitere Guides und Vorstellungen von mir hier geben wird.

Ich empfehle nur Tools / PlugIns / Anbieter / Produkte, hinter denen ich auch wirklich stehe, bzw. bei denen ich auch einen Mehrwert sehe.

DarkWolfCave.de ist Teilnehmer des Amazon-Partnerprogramms, das zur Bereitstellung eines Mediums für Webseiten konzipiert wurde, mittels dessen durch die Platzierung von Partner-Links zu Amazon.de Entgelte verdient werden können.


ACHTUNG! Bitte lesen!

Du benutzt das hier Gezeigte natürlich, wie immer, auf eigenes Risiko!
Ich habe alles selbst durchgeführt und mir mein System nicht zerschossen oder sonst irgendwelche negativen Auffälligkeiten bemerkt.

Aber dennoch… Backups sind immer gut….
Für WordPress-Backups am besten mit UpdraftPlus

Ich übernehme keine Haftung für Schäden jeglicher Art am System, der Hardware oder der Katze…. :-P


DarkWolfCave.de

Eigenes Wordpress Plugin einfach erstellen

Du möchtest auch mal selbst ein eigenes Wordpress-PlugIn erstellen, weißt aber noch nicht so genau, wie du das anstellen kannst? Das ist gar nicht so schwierig, wie du vielleicht denken würdest. Denn WordPress gibt uns schon sehr viele Hilfen (z.B. Hooks, Funktionen) an die Hand, um uns das Leben deutlich zu erleichtern. Einen kleinen Einstieg – und komplette Erstellung eines eigenen PlugIns – werde ich dir jetzt Schritt für Schritt zeigen und hoffe, du begleitest mich dabei.

DarkWolfCave.de

Ziel / Beschreibung des WordPress Plugin

Ich werde dir die notwendigen Schritte anhand eines kleinen Plugins zeigen. Mit diesem wirst du dann in der Lage sein, deinen Discord-Chat automatisch zu benachrichtigen, sobald auf deiner WordPress-Seite ein neuer Artikel veröffentlicht wurde.

Du wirst hier einen groben Überblick finden.
Allerdings biete ich dir auch noch etwas mehr Support an:

  • Du benötigst persönlichen Support
  • Du möchtest von Beginn an Unterstützung bei deinem Projekt
  • Du möchtest ein hier vorgestelltes Plugin durch mich installieren und einrichten lassen
  • Du würdest gerne ein von mir erstelltes Script etwas mehr an deine Bedürfnisse anpassen

Für diese Punkte und noch einiges mehr habe ich einen limitierten
VIP-Patreon Tarif
eingerichtet. Falls er dir dort zurzeit nicht angeboten wird,
kontaktiere mich bitte über Discord und wir finden eine Lösung!

Fangen wir mit den Vorbereitungen an

Damit WordPress unser PlugIn später auch als solches erkennt, müssen wir unsere Dateien entsprechend auf dem Webhosting ablegen.
Du findest alle Plugins in der Regel unter:
DEINE-WORDPRESS-INSTALLATION/wp-content/plugins
Da du ja bereits eine WordPress Installation erfolgreich durchgeführt hast (sonst würdest du sicher nicht nach einer WordPress-PlugIn Erstellung suchen… ), gehe ich davon aus, dass du weißt, wie du zu diesem Ordner gelangst.
Ich benutzte meistens MobaXterm, um mich mit meinem Webhoster zu verbinden und Dateien zu erstellen. Natürlich geht dies auch auf verschiedene andere Wege.

Ordner und leere Dateien für das PlugIn anlegen

Jetzt erstellen wir zuerst einen neuen Ordner unter dem /plugins Verzeichnis und nennen ihn “post-discord”. In diesem legen wir zwei – vorerst leere – Dateien an.

  • index.php
  • post_discord.php
eigenes WordPress Plugin Dateien
die leeren Dateien unter unserem neuen “post-discord” Ordner

Silence is golden

Hä?! Kaum angefangen und schon wirft er mit komischen Wörter um sich?!
Keine Sorge – es ist nichts wildes und geht auch schnell vorbei.

Öffne einfach die gerade erstellte index.php in einem Editor und schreibe folgendes hinein:

<?php
//Silence is golden.

Warum? Wie du vielleicht schon erkannt hast, ist dieses Silence is golden auskommentiert und macht also nichts.
Im Prinzip sichern wir aber hiermit unsere WordPress Umgebung ein wenig ab. Denn je nach Konfiguration des Servers auf dem WordPress läuft (ok, und WordPress selber…) könnte es ansonsten dazu führen, dass bei einem direkten Aufruf des Ordners die gesamte Ordnerstruktur angezeigt wird.

Denn wenn ein Ordner ohne Dateiangabe aufgerufen wird, sucht der Server nach einer index.php / index.html / index.htm und würde diesen Inhalt ausgeben. Findet er nichts, zeigt er im blödesten Fall die gesamte Ordnerstruktur an.

Dies ist natürlich nicht wünschenswert und mit dieser “fast” leeren index.php gehen wir auf Nummer Sicher.

Das war auch schon alles und du kannst die index.php speichern und schließen (und auf den Server laden falls du lokal arbeitest – aber ich denke dessen bist du dir bewusst 🙂 )

Einen Header benötigen wir auch

Sicher kennst du den Bereich in WordPress wo deine installierten PlugIns angezeigt werden. Hier soll später auch unser eigenes auftauchen. Damit WordPress dies aber auch erkennt, reicht es nicht aus, einen neuen Ordner bei den PlugIns anzulegen, sondern wir benötigen noch einen sogenannten “Header” in unserer php-Datei.

Hier stehen dann diverse Informationen wie der Name, Autor, Versionsnummer usw.
Welche du dort benutzen kannst, wird im WordPress-Codex erklärt.
Wir beschränken uns bei unserem PlugIn aber nur auf die notwendigsten Daten.

Also öffne die post_discord.php und füge folgenden Header hinein (wer sich mit PHP auskennt, wird erkennen dass dieser Header auskommentiert ist, aber dies ist richtig so 😉 )

<?php
/*
 * Plugin Name: neue Beiträge an Discord senden
 * Description: sendet bei neuen Artikeln automatisch eine Benachrichtigung an einen Discord-Kanal
 * Version: 0.1
 * Author: DarkWolfCave
 * Author URI: https://darkwolfcave.de
*/

Etwas Sicherheit für unser eigenes PlugIn

Um den direkten Aufruf unserer PHP-Datei außerhalb einer WordPress Instanz zu unterbinden, prüfen wir direkt nach einem Aufruf, ob die WordPress Konstante ABSPATH vorhanden ist.

Diese wird in der wp-config.php definiert und muss immer vorhanden sein sobald wir uns in WordPress “bewegen”. Denn hier ist der absolute Dateipfad zur Installation hinterlegt.

Also füge in deine post_discord.php, direkt nach dem Header-Eintrag, folgendes hinzu:

// wir prüfen ob die Konstante ABSPATH vorhanden ist. 
// Ist dies nicht der Fall, wurde versucht die php-Datei direkt und nicht über WordPress aufzurufen, und der Zugriff wird verboten

if (!defined('ABSPATH')) die('No direct access allowed');

Dann mal los – erstellen wir eine Klasse

Es muss keine Klasse sein, wir könnten auch einfach mit Funktionen und Hooks loslegen. Und dies würde sicherlich auch bei unserem Vorhaben ausreichen, allerdings wird es bei größeren Projekten ohne Klassen sehr schnell unübersichtlich. Daher ist es nicht falsch diese jetzt und hier auch schon anzuwenden. Vor allem kann man sich direkt an sie gewöhnen 😛

Wir befinden uns weiterhin in der post_discord.php und ergänzen diese mit unserer neuen Klasse, initialisieren diese und geben ihr einen Konstruktor mit.
Ich gehe hier jetzt nicht genauer auf die objektorientierte Programmierung (OOP) und deren Methoden/Klassen weiter ein, dies würde den Rahmen sprengen. Allerdings versuche ich es soweit zu erklären dass du nachvollziehen kannst was die einzelnen Punkte bewirken. Im Moment reicht es wenn du dir die “Klasse” als Behälter für unsere Funktionen vorstellst in der alle liegen. Mehr ist es hier auch eigentlich nicht.

Aber jetzt mal weiter im Code 😉
Erweitere die bisherige Datei um die folgenden Zeilen:

class dwc_PostDiscord{

	public function __construct() {
                add_action('transition_post_status', array( $this, 'dwc_nachricht_discord'), 10, 3 );
                add_action('admin_menu', array( $this, 'dwc_discord_admin_actions' ));
                register_deactivation_hook( __FILE__, array( $this, 'dwc_PostDiscord_deactivation' ) );
	}

Hier erstellen wir jetzt unsere Klasse mit einem beliebigen Namen. Ich habe mir angewöhnt vor allen Klassen, Funktionen(Methoden) mein Kürzel vorzuschreiben “dwc”. Dies trägt auch dazu bei, dass die Chance auf einen doppelten Namen in anderen PlugIns reduziert wird.

Die Klassen haben generell eine “Konstrukt-Funktion” die wir hier mit “public function __construct() {” einfügen (achte auf die doppelten Unterstriche vor dem construct() ).
Diese Funktion wird immer aufgerufen, sobald ein Objekt erstellt – also unsere Klasse – gestartet wird. Man deklariert hier zum Beispiel auch notwendige Variablen und könnte auch Attribute an diese Funktion übergeben.
Wir beschränken uns aktuell auf Einbindung unserer benötigten Hooks:
add_action(‘WO soll es eingebunden werden’, ‘NAME unserer eigenen Funktion’, PRIO, ERWARTETE PARAMETER)
add_action(‘WO soll es eingebunden werden’, ‘NAME unserer eigenen Funktion’,)

Das erste soll immer im Bezug auf “transition_post_status” aufgerufen werden. Also immer wenn sich auf unserer Seite der Zustand eines Artikels ändert. Egal ob er neu erstellt oder bearbeitet wird. Die Prio ist Default auf 10 gesetzt und die erwarteten Parameter werden für unsere Funktion benötigt und weiter unten erklärt, sobald wir diese erstellen.
Wenn du generell etwas mehr über “transition_post_status” erfahren willst, dann empfehle ich dir diese Seite.

Der Name der Funktion wird hier in einem Array übergeben und ein $this davor gestellt. Dies sagt aus, dass sich die Funktion in unserem aktuellen Objekt befindet (class dwc_PostDiscord). In einfachen Funktionen, ohne eine Klasse drumherum, würde man dieses Array nicht benötigen und nur den Namen der Funktion eintragen.

Der zweite Hook bezieht sich auf das Menü im Admin-Bereich (admin_menu) – hier wollen wir später noch einen Eintrag erzeugen unter diesem du dann einen Link zu deinem Discord-Channel einfügen kannst.

Zu guter Letzt möchten wir, beim deaktivieren unseres PlugIns, auch wieder ein wenig aufräumen. Dazu nutzen wir den Hook “register_deactivation_hook”. Das __FILE__ übergibt den Pfad und den Dateinamen des PlugIns.

Endlich die erste Funktion für unser WordPress Plugin

Ärmel hochkrempeln, Kaffee holen und aufgepasst. Jetzt wird es einmal etwas wirr… Aber keine Sorge, wir schaffen das schon 😛
Starten wir direkt mit der aufwendigsten unserer Funktionen. Diese sorgt später dafür, dass ein neuer Artikel an Discord gesendet wird.

Wir befinden uns weiterhin in der post_discord.php und du kannst die jetzt gezeigten Zeilen zu deiner Datei hinzufügen:

public function dwc_nachricht_discord($dwc_new, $dwc_old, $dwc_post) { 
        if(get_option('discord_settings_url') == null) {
        return;
        }

        if ( $dwc_new != 'publish' || $dwc_old == 'publish' || $dwc_post->post_type != 'post') {
        return;
        }

    $dwc_discord_url = get_option('discord_settings_url');
    $id = $dwc_post->ID;

    $author = $dwc_post->post_author;
    $authorName = get_the_author_meta('display_name', $author);
    $postTitle = $dwc_post->post_title;
    $permalink = get_permalink($id);
    $message = "@everyone - Auf DarkWolfCave.de gibt es einen neuen Beitrag:  \"" . $postTitle . "\" Zum lesen einfach klicken: " . $permalink;

    $postData = array('content' => $message);
    $curl = curl_init($dwc_discord_url);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");  
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($postData));
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

    $response = curl_exec($curl);
    $errors = curl_error($curl);        
	} 

Was haben wir hier jetzt genau gemacht? Genau: eine Funktion mit dem Namen “dwc_nachricht_discord” und 3 erwarteten Parametern ($dwc_new, $dwc_old, $dwc_post) erstellt.
Soweit so gut…. schauen wir uns jetzt Zeile für Zeile genauer an:

if(get_option('discord_settings_url') == null) {
return;
}

Diese IF-Abfrage prüft ob der Discord-Link vorhanden ist (dieser kann später auf der Admin_Seite hinterlegt werden).
Sollte dies nicht der Fall sein, wird die Funktion direkt beendet. Ohne Link – kein Discord…

if ( $dwc_new != 'publish' || $dwc_old == 'publish' || $dwc_post->post_type != 'post') {
return;
}

Auch die nächste IF-Abfrage prüft, ob bestimmte Kriterien erfüllt sind. Sollte eine von diesen zutreffen, dann wird auch hier die Funktion beendet. Diese doppelte “Pipe” ( || ) ist eine OR – Verknüpfung. Trifft Teil1 zu ODER Teil2 zu ODER Teil3 zu dann….
Etwas genauer: Wenn unserer Artikel NICHT den Status publish hat ODER bereits published wurde ODER der Beitrag NICHT ein post ist, dann beende direkt.
Wir wollen halt wirklich nur neue gepostete Beiträge an Discord senden.

Sollten die beiden IF-Abfragen nicht dazu geführt haben, dass sich die Funktion beendet, geht es auch schon lustig weiter:

$dwc_discord_url = get_option('discord_settings_url');
$id = $dwc_post->ID;
$author = $dwc_post->post_author;
$authorName = get_the_author_meta('display_name', $author);
$postTitle = $dwc_post->post_title;
$permalink = get_permalink($id);
$message = "@everyone - Auf DarkWolfCave.de gibt es einen neuen Beitrag: \"" . $postTitle . "\" Zum lesen einfach klicken: " . $permalink;
$postData = array('content' => $message);

Es wurden diverse Variablen mit Werten gefüllt. Unter anderem die DiscordURL, ID/Autor des Beitrages, der Link dorthin und ein freier Text.
Bei $message kannst du den Text einfach anpassen. Dieser wird dann so auf deinem Discord-Kanal erscheinen. Mit dem Titel des Artikels ($postTitle) und dem Link zum Artikel ($permalink).

$curl = curl_init($dwc_discord_url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($postData));
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($curl);
$errors = curl_error($curl);

Nun bereiten wir alles zum senden vor und benutzen dafür cURL.
Angefangen mit der URL die wir aufrufen wollen (Discord-URL), über einige Parameter wie die Bestimmung des Request (POST), dass es JSON sein soll und es keine SSL Prüfung gibt. Wenn du mehr über cURL erfahren möchtest, dann kannst du warten bis es hier mal etwas dazu gibt (dich also am besten in den kostenlosen Newsletter eintragen), oder dich hier schlau lesen 😛

Mit $response = curl_exec($curl); schicken wir das Ganze dann in Richtung Discord los und erfreuen uns über die Benachrichtigung, sobald ein neuer Artikel auf WordPress veröffentlicht wurde.

Trage dich in den Newsletter ein!

Sie sehen gerade einen Platzhalterinhalt von Brevo. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

Funktion für den Admin-Bereich brauchen wir noch

Bisher haben wir eine Funktion fertig die neue Artikel zu unserem Discord-Kanal senden würde. Allerdings weiß unser eigenes PlugIn noch nicht wohin die Benachrichtigung geschickt werden soll.
Hierfür werden wir jetzt im Admin-Bereich ein neues Menü erstellen unter dem dann der Link eingefügt und gespeichert werden kann.

Auch diese Funktion werden wir in der post_discord.php eintragen. Einfach direkt unter der letzten erstellten Funktion hinzufügen:

public function dwc_discord_admin_actions() {
            $page_title = 'Nachricht an Discord';
            $menu_title = 'Nachricht an Discord';
            $capability = 'manage_options';
            $menu_slug  = 'nachricht-an-discord';
            $function   = array( $this,'nachricht_an_discord_page');
            $position   = 4;	
            add_options_page( $page_title,$menu_title,$capability,$menu_slug,$function,$position ); 
            add_action( 'admin_init', array( $this, 'update_discord_settings' ));
        }

Mit dieser sorgen wir dafür, dass im Admin Bereich unter Einstellungen ein neuer Punkt hinzugefügt, wird der sich “Nachricht an Discord” nennt.
Viel mehr gibt es hier auch nicht zu sagen und viel mehr macht diese Funktion auch nicht.

Wir speichern unseren Discord-Link

Damit auch etwas “passiert” und wir was sehen sobald der neue Menüpunkt aufgerufen wird, benötigen wir noch eine entsprechende Seite dazu.
Wie du dir sicherlich denken kannst, kommen auch diese Zeilen in unser eigenes PlugIn post_discord.php:

    public function update_discord_settings() 
    {
    register_setting( 'nachricht-an-discord-settings', 'discord_settings_url' ); 
    }

	public function nachricht_an_discord_page()
	{ 
		?> 
		<h1>Nachricht an Discord senden</h1> 
		<form method="post" action="options.php">
		<?php settings_fields( 'nachricht-an-discord-settings' ); ?>
		<?php do_settings_sections( 'nachricht-an-discord-settings' ); ?>
		<?php $size_url = strlen(get_option( 'discord_settings_url' ))+20; ?>	
		<table class="form-table"><tr valign="top"><th scope="row">URL zu deinem Discord-Channel:</th>
			<td><input type="text" size=<?php echo $size_url; ?>" name="discord_settings_url" value="<?php echo get_option( 'discord_settings_url' ); ?>"/></td></tr>			</table>
		<?php submit_button(); ?>
		</form>
		<?php 
	}

Im Grunde wird hier lediglich nur ein Textfeld erzeugt, beim laden der Seite ein Datenbankwert ausgelesen ( get_option( ‘discord_settings_url’ ) ), und beim betätigen des submit-Buttons wird der Wert des Textfeldes in die Datenbank geschrieben.

Etwas aufräumen wenn unser eigenes PlugIn deaktiviert wird

Es wird auch bei unserem genialen PlugIn die Zeit kommen, wo wir uns von diesem verabschieden wollen. Und dann soll nicht noch irgendwo Restmüll von herumliegen. Daher räumen wir mit der nächsten Funktion, die auch in die post_discord.php hineinkommt, ein wenig die Datenbank auf.
Denn in dieser speichern wir bisher den Discord Link und nach dem deaktivieren unseres WordPress PlugIn wird der Link ja nicht mehr benötigt.

Solltest du allerdings öfters deine (oder dieses) PlugIn de- und reaktivieren, solltest du diese Funktion eher nicht einbauen. Denn ansonsten musst du nach jedem deaktivieren deinen Discord Link erneut eintragen. Falls du diese Funktion nicht einbauen möchtest, dann entferne bitte unter __construct auch diesen Eintrag: register_deactivation_hook( FILE, array( $this, 'dwc_PostDiscord_deactivation' ) );

 public function dwc_PostDiscord_deactivation(){
		if ( strlen(get_option( 'discord_settings_url')) != 0) {
	            delete_option( 'discord_settings_url' );
        }
            else {
                return;
            }
		}
}

Die Funktion wird aufgerufen sobald unser eigenes WordPress PlugIn deaktiviert wurde.
Dann wird geprüft ob in der Datenbank ein Wert vorhanden ist. Sollte dies der Fall sein, wird der Eintrag gelöscht delete_option( 'discord_settings_url' ), ansonsten passiert nichts.

Herzlichen Glückwunsch – dein eigenes WordPress PlugIn ist jetzt endlich fertig und funktionsbereit.

Unser eigenes WordPress Plugin – Das fertige Skript

<?php
/*
 * Plugin Name: neue Beiträge an Discord senden
 * Description: sendet bei neuen Artikeln automatisch eine Benachrichtigung an einen Discord-Kanal
 * Version: 0.1
 * Author: DarkWolfCave
 * Author URI: https://darkwolfcave.de
*/
// wir prüfen ob die Konstante ABSPATH vorhanden ist. 
// Ist dies nicht der Fall, wurde versucht die php-Datei direkt und nicht über WordPress aufzurufen, und der Zugriff wird verboten

if (!defined('ABSPATH')) die('No direct access allowed');
class dwc_PostDiscord{

	public function __construct() {
                add_action('transition_post_status', array( $this, 'dwc_nachricht_discord'), 10, 3 );
                add_action('admin_menu', array( $this, 'dwc_discord_admin_actions' ));
                register_deactivation_hook( __FILE__, array( $this, 'dwc_PostDiscord_deactivation' ) );
	}
    public function dwc_nachricht_discord($dwc_new, $dwc_old, $dwc_post) { 
        if(get_option('discord_settings_url') == null) {
        return;
        }

        if ( $dwc_new != 'publish' || $dwc_old == 'publish' || $dwc_post->post_type != 'post') {
        return;
        }

    $dwc_discord_url = get_option('discord_settings_url');
    $id = $dwc_post->ID;

    $author = $dwc_post->post_author;
    $authorName = get_the_author_meta('display_name', $author);
    $postTitle = $dwc_post->post_title;
    $permalink = get_permalink($id);
    $message = "@everyone - Auf DarkWolfCave.de gibt es einen neuen Beitrag:  \"" . $postTitle . "\" Zum lesen einfach klicken: " . $permalink;

    $postData = array('content' => $message);
    $curl = curl_init($dwc_discord_url);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");  
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($postData));
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);

    $response = curl_exec($curl);
    $errors = curl_error($curl);        
	} 
    public function dwc_discord_admin_actions() {
        $page_title = 'Nachricht an Discord';
        $menu_title = 'Nachricht an Discord';
        $capability = 'manage_options';
        $menu_slug  = 'nachricht-an-discord';
        $function   = array( $this,'nachricht_an_discord_page');
        $position   = 4;	
        add_options_page( $page_title,$menu_title,$capability,$menu_slug,$function,$position ); 
        add_action( 'admin_init', array( $this, 'update_discord_settings' ));
    }
    public function update_discord_settings() 
    {
    register_setting( 'nachricht-an-discord-settings', 'discord_settings_url' ); 
    }

	public function nachricht_an_discord_page()
	{ 
		?> 
		<h1>Nachricht an Discord senden</h1> 
		<form method="post" action="options.php">
		<?php settings_fields( 'nachricht-an-discord-settings' ); ?>
		<?php do_settings_sections( 'nachricht-an-discord-settings' ); ?>
		<?php $size_url = strlen(get_option( 'discord_settings_url' ))+20; ?>	
		<table class="form-table"><tr valign="top"><th scope="row">URL zu deinem Discord-Channel:</th>
			<td><input type="text" size=<?php echo $size_url; ?>" name="discord_settings_url" value="<?php echo get_option( 'discord_settings_url' ); ?>"/></td></tr>			</table>
		<?php submit_button(); ?>
		</form>
		<?php 
	}
    public function dwc_PostDiscord_deactivation(){
		if ( strlen(get_option( 'discord_settings_url')) != 0) {
	            delete_option( 'discord_settings_url' );
        }
            else {
                return;
            }
		}
}

Woher bekommen wir den Discord-Link für unser PlugIn?

Nun haben wir unser PlugIn fertig und schon öfters über diesen dubiosen Discord-Link geschrieben. Vielleicht hast du dich ja auch schon gefragt woher du ihn eigentlich bekommen kannst.
Ich gehe davon aus, dass du bereits einen Discord-Account besitzt. Ansonsten erstelle dir bitte auf der Seite einen.

Die Schritte sind in der Windows-APP sowie im Browser dieselben.
Gehe auf deinen Server und dann auf den Kanal wo die Benachrichtigungen erscheinen sollen.
Dort auf das Zahnrad klicken.

eigenes WordPress PlugIn - Discord WebHook

Jetzt sehen wir mehrere Menüeinträge – hier dann Integrationen wählen und danach auf der rechten Seite den Button WebHook erstellen betätigen.
Solltest du dort schon einen eingerichtet haben, ist an dieser Stelle kein Button mehr, sondern ein Link WebHooks anzeigen.

WordPress eigenes PlugIn - Discord WebHook

Sobald du den Button gedrückt hast, wird automatisch dein erster WebHook erstellt.
Hier kannst du deinem Bot dann einen Namen geben und auch nochmal den Kanal auswählen wo er benachrichtigen soll.
Über den Button WebHook-URL kopieren kommen wir jetzt endlich an den benötigten Link für unser eigenes PlugIn.
Diesen kopierst du dir in eine Textdatei oder fügst ihn direkt im Admin-Bereich, bei Einstellungen und “Nachricht an Discord” hinzu.
Dafür muss unser PlugIn aber schon aktiviert sein.

discord Webhook

Lass es uns tun! Aktivieren wir unser erstes eigenes WordPress PlugIn!

Jetzt haben wir alles um unser WordPress PlugIn zu aktivieren. Dazu begeben wir uns in den Admin-Bereich und dort zu Plugins – installierte Plugins und suchen unser eigenes heraus neue Beiträge an Discord senden und aktivieren es mit Aktivieren.

eigenes WordPress PlugIn - Discord aktivieren

Sofern wir alles richtig gemacht haben, gibt es jetzt keine Fehlermeldung und wir können im Admin-Bereich bei Einstellungen – Nachricht an Discord unsere Discord-URL eintragen und speichern.

eigenes WordPress PlugIn - Discord URL

Hier tragen wir jetzt unseren Link ein, den wir etwas weiter oben bei WebHook erstellen, kopiert haben und speichern diesen.
Sobald Du einen neuen Artikel veröffentlichst erscheint dieser ab jetzt in deinem eingerichteten Discord-Kanal.

WordPress eigenes Plugin - Discord Post

Solltest du jetzt noch Fragen haben oder Fehler erhalten die du dir nicht erklären kannst, nutze ruhig die Kommentar Funktion oder schaue auf Discord vorbei. Ich versuche diese dann gerne zu beantworten bzw. bei Fehlern zu helfen.

Avatar-Foto

Ich bin ein 1977 geborener Technik-Nerd. Mein erster Gefährte in der digitalen Welt war ein C64, der den Grundstein für meine Leidenschaft für Technologie legte. So wurde mein Hobby zum Beruf, und ich begann eine Ausbildung zum IT-Systemelektroniker. Selbst in meiner knappen Freizeit widme ich mich weiterhin meiner Leidenschaft fürs Gaming, verschiedene Programmiersprachen und andere IT-bezogene Themen. Ansonsten mag ich Hunde und bin fasziniert von Wölfen!

Gefällt dir der Beitrag?
Hinterlasse gerne ein paar Sterne!

Wie hilfreich war dieser Beitrag für Dich?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 5 / 5. Anzahl Bewertungen: 4

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Es tut uns leid, dass der Beitrag für dich nicht hilfreich war!

Lasse uns diesen Beitrag verbessern!

Wie können wir diesen Beitrag verbessern?

Abonnieren
Benachrichtige mich bei
guest
4 Kommentare
Neueste
Älteste
Inline Feedbacks
Alle Kommentare anzeigen

GitHub - Sourcecode

Den gesamten und aktuellen Sourcecode meiner Scripte, Snippets und Tools findest du ab jetzt auch in meinem GitHub Account!
Inhalt