Avatar Manager für WordPress ist ein süßes und einfaches Plugin zum lokalen Speichern von Avataren und mehr. Leicht.
Verbessern Sie Ihre WordPress-Website, indem Sie Ihren Benutzern die Wahl zwischen Gravatar oder einem selbst gehosteten Avatar-Bild direkt auf ihrem Profilbildschirm geben. Verbesserter Workflow, Erstellung von Images bei Bedarf und benutzerdefinierte Benutzerberechtigungen unter einer nativen Schnittstelle. Begrüßen Sie das Avatar Manager Plugin.
Ein WordPress-Plugin ist eine PHP-Anwendung, die WordPress eine bestimmte Gruppe von Funktionen oder Diensten hinzufügt, die mithilfe von Zugriffspunkten und Methoden der WordPress Plugin-API nahtlos in WordPress integriert werden kann.
Dieser Artikel führt Sie durch den gesamten Prozess der Erstellung Ihres eigenen WordPress-Plugins.
Hinweis: In diesem Artikel wird davon ausgegangen, dass Sie bereits mit den grundlegenden Funktionen von WordPress und der PHP-Programmierung vertraut sind.
Um zu beginnen, navigieren Sie zu wp-content / plugins / unter deiner WordPress-Installation. Um den Arbeitsbereich einzurichten, erstellen Sie zunächst die folgende Struktur von Verzeichnissen und leeren Dateien, wie im folgenden Bild dargestellt:
Stellen Sie sicher, dass Sie einen eindeutigen Namen für das Plugin-Verzeichnis und für die Haupt-PHP-Datei auswählen, z. B. Avatar-Manager und avatar-manager.php in diesem Beispiel, und legen Sie alle Dateien des Plugins in diesem Verzeichnis ab.
Bevor Sie mit dem Schreiben unseres Plugins beginnen, öffnen Sie es avatar-manager / index.php und fügen Sie den folgenden Code hinzu:
Sie können diese Datei an vielen Stellen in WordPress sehen. Es ist ein einfacher Trick, der das Durchsuchen von Verzeichnissen verhindert.
Nun ist es Zeit, einige Informationen in unsere Haupt-Plugin-PHP-Datei zu packen.
Die Oberseite der Haupt-PHP-Datei des Plugins muss einen Standard-Plugin-Informationsheader enthalten. Mit diesem Header kann WordPress erkennen, dass das Plugin vorhanden ist. Fügen Sie es dem Plugin-Verwaltungsbildschirm hinzu, damit es aktiviert werden kann, laden Sie es und führen Sie seine Funktionen aus. Ohne den Header wird das Plugin niemals aktiviert und läuft nie.
Öffnen avatar-manager / avatar-manager.php und füge folgende Zeilen hinzu:
Die Mindestinformation, die WordPress benötigt, um das Plugin zu erkennen, ist das Plugin-Name
Linie. Die restlichen Informationen (falls vorhanden) werden verwendet, um die Tabelle der Plugins auf dem Plugin-Verwaltungsbildschirm zu erstellen. Die Reihenfolge der Zeilen ist nicht wichtig.
Damit der Upgrade-Mechanismus die Version unseres Plugins korrekt lesen kann, wird empfohlen, ein Format für die Versionsnummer auszuwählen und zwischen den verschiedenen Versionen zu bleiben.
Der Lizenz-Slug sollte eine kurze allgemeine Kennung für die Lizenz sein, unter der sich das Plugin befindet, und soll eine einfache Möglichkeit darstellen, die Lizenz des Codes explizit zu beschreiben.
Um Transparenz und Einblick in unseren Release-Zyklus zu erhalten und die Abwärtskompatibilität aufrechtzuerhalten, wird Avatar Manager so weit wie möglich gemäß den Semantic Versioning-Richtlinien verwaltet.
Releases werden mit folgendem Format nummeriert:
Und mit den folgenden Richtlinien konstruiert:
Weitere Informationen zu SemVer finden Sie unter semver.org.
Es ist üblich, dem Standard-Header mit Informationen zur Lizenzierung des Plugins zu folgen. Die meisten Plugins verwenden dieselbe Lizenz, die von WordPress verwendet wird. Dies ist die GPLv2-Lizenz oder eine mit der GPLv2 kompatible Lizenz. Um eine GPLv2-Lizenz anzugeben, fügen Sie unserem Plugin die folgenden Zeilen hinzu:
/ * Copyright © 2013 Cătălin Dogaru Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und / oder ändern. entweder Version 2 der Lizenz oder (nach Ihrer Wahl) eine spätere Version. Dieses Programm wird in der Hoffnung verteilt, dass es nützlich ist, jedoch OHNE JEDE GARANTIE; sogar ohne die implizite Garantie der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Weitere Informationen finden Sie in der GNU General Public License. Sie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben. Wenn nicht, schreiben Sie an die Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * /
Als nächstes öffnen Avatar-Manager / LIZENZ und fügen Sie die Nur-Text-Version von GPLv2 ein.
Nachdem Sie den vorherigen Schritt abgeschlossen haben, sollten Sie das Avatar Manager-Plugin unter dem Plugins-Bildschirm finden können.
Nun ist es an der Zeit, dass unser Plugin tatsächlich etwas tut. Aktivieren Sie es und fügen Sie der Haupt-Plugin-PHP-Datei die folgenden Codezeilen hinzu:
define ('AVATAR_MANAGER_VERSION', '1.0.0'); define ('AVATAR_MANAGER_PLUGIN_URL', plugin_dir_url (__FILE__)); define ('AVATAR_MANAGER_AVATAR_UPLOADS', 0); define ('AVATAR_MANAGER_DEFAULT_SIZE', 96);
Das definieren()
Funktion definiert eine benannte Konstante zur Laufzeit. Das plugin_dir_url ()
Funktion ruft die URL (mit nachgestelltem Schrägstrich) für das Plugin ab __DATEI__
übergeben. Der Wert von __DATEI__
ist der vollständige Pfad und Dateiname der aktuellen Datei und eine der acht magischen Konstanten, die PHP zur Verfügung stellt.
Gehen wir weiter und initialisieren unser Plugin:
/ ** * Legt die Standardeinstellungen für Plugins fest und macht Avatar Manager für die Übersetzung verfügbar. * * @uses load_theme_textdomain () Zur Unterstützung von Übersetzungen / Lokalisierung. * @uses plugin_basename () Zum Abrufen des Basisnamens des Plugins. * * @since Avatar Manager 1.0.0 * / function avatar_manager_init () // Stellt den Avatar Manager für die Übersetzung zur Verfügung. load_plugin_textdomain ('avatar-manager', false, dirname (plugin_basename (__FILE__)). '/ languages /'); add_action ('init', 'avatar_manager_init');
Das add_action ()
call hakt eine Funktion an eine bestimmte Aktion. Das drin
Die Aktion wird ausgeführt, nachdem WordPress das Laden beendet hat, aber bevor Header gesendet werden. Auch die load_plugin_textdomain ()
Anruf sollte während erfolgen drin
, Andernfalls können sich Benutzer nicht einhaken. Aber dazu später mehr, wenn ich die Internationalisierung unseres Plugins besprechen werde. Das dirname ()
Die Funktion gibt den Pfad des übergeordneten Verzeichnisses zurück, während plugin_basename ()
Funktion ruft den Basisnamen des Plugins ab.
Hooks werden von WordPress bereitgestellt, damit ein Plugin in den Rest von WordPress eingebunden werden kann. Das heißt, zu bestimmten Zeiten Funktionen im Plugin aufzurufen und dadurch das Plugin in Bewegung zu setzen. Es gibt zwei Arten von Haken:
Als Nächstes fügen wir die Plugin-Optionen hinzu. Durch die Berücksichtigung von Anpassungen ist ein Plugin für den Benutzer viel flexibler.
/ ** * Registriert die Felder für die Bereinigungsrückruf- und Plugin-Einstellung. * * @uses register_setting () Zum Registrieren einer Einstellung und deren Bereinigung * der Rückrufaktion. * @uses add_settings_field () Zum Registrieren eines Einstellungsfelds auf einer Einstellungsseite * und einem Abschnitt. * @uses __ () Zum Abrufen der übersetzten Zeichenfolge aus translate (). * * @since Avatar Manager 1.0.0 * / function avatar_manager_admin_init () // Registriert die Plugin-Einstellung und ihren Rückruf für die Bereinigung. register_setting ('discussion', 'avatar_manager', 'avatar_manager_sanitize_options'); // Registriert das Avatar-Upload-Einstellungsfeld unter dem Einstellungsdialog // Bildschirm. add_settings_field ('avatar-manager-avatar_uploads', __ ('Avatar-Uploads', 'avatar-manager'), 'avatar_manager_avatar_uploads_settings_field', 'discussion', 'avatars'); // Registriert die Standardgröße-Einstellungsfelder unter dem Einstellungsdiskussions-Bildschirm. add_settings_field ('avatar-manager-default-size', __ ('Standardgröße', 'avatar-manager'), 'avatar_manager_default_size_settings_field', 'discussion', 'avatars'); add_action ('admin_init', 'avatar_manager_admin_init');
Das admin_init
Die Aktion wird vor jedem anderen Hook ausgelöst, wenn ein Benutzer auf den Admin-Bereich zugreift. Das register_setting ()
Die Funktion registriert eine Einstellung und ihren Rückruf für die Bereinigung. Das add_settings_field ()
Die Funktion registriert ein Einstellungsfeld auf einer Einstellungsseite und einem Abschnitt. Wir haben sie verwendet, um unsere Plugin-Optionen unter dem Einstellungsdiskussionsbildschirm hinzuzufügen. Das __ ()
Die Funktion wird später erläutert, wenn ich mich mit dem Internationalisierungsprozess beschäftige.
Vor dem Schreiben des Desinfektionsrückrufs müssen zwei weitere Funktionen definiert werden, avatar_manager_get_default_options ()
und avatar_manager_get_options ()
.
/ ** * Gibt die Standardoptionen des Plugins zurück. * * @since Avatar Manager 1.0.0 * * @return Array Standardeinstellungen für das Plugin. * / function avatar_manager_get_default_options () $ options = array ('avatar_uploads' => AVATAR_MANAGER_AVATAR_UPLOADS, 'default_size' => AVATAR_MANAGER_DEFAULT_SIZE); $ Optionen zurückgeben;
Das avatar_manager_get_default_options ()
Die Funktion gibt die Standardeinstellungen des Plugins zurück.
/ ** * Gibt Plugin-Optionen zurück. * * @uses get_option () Ermittelt Werte für eine benannte Option. * @uses avatar_manager_get_default_options () Zum Abrufen von Plugin-Standardoptionen *. * * @since Avatar Manager 1.0.0 * * @return Array Plugin-Optionen. * / function avatar_manager_get_options () return get_option ('avatar_manager', avatar_manager_get_default_options ());
Das avatar_manager_get_options ()
Funktion ruft die aktuellen Plugin-Optionen ab. Das get_otpion ()
Funktion gibt den Wert der angegebenen Option oder den Standardwert zurück, wenn die Option nicht in der Datenbank enthalten ist.
/ ** * Bereinigt und überprüft Plugin-Optionen. * * @uses avatar_manager_get_default_options () Zum Abrufen der Standardoptionen für Plugins *. * @uses absint () Zur Umwandlung eines Werts in eine nicht negative ganze Zahl. * * @since Avatar Manager 1.0.0 * * @return array Sanitized Plugin-Optionen. * / function avatar_manager_sanitize_options ($ input) $ options = avatar_manager_get_default_options (); if (isset ($ input ['avatar_uploads']) && trim ($ input ['avatar_uploads'])) $ options ['avatar_uploads'] = trim ($ input ['avatar_uploads'])? 1: 0; if (isset ($ input ['default_size']) && is_numeric (trim ($ input ['default_size']))) $ options ['default_size'] = absint (trim ($ input ['default_size'])); if ($ options ['default_size']) < 1 ) $options['default_size'] = 1; elseif ( $options['default_size'] > 512) $ options ['default_size'] = 512; return $ options;
Das avatar_manager_sanitize_options ()
Die Funktion desinfiziert und validiert die Plugin-Optionen. Das isset ()
call legt fest, ob eine Variable gesetzt ist und nicht NULL
. Das trimmen()
Mit dieser Funktion werden Leerzeichen vom Anfang und Ende einer Zeichenfolge entfernt. Das is_numeric ()
Funktion ermittelt, ob eine Variable eine Zahl oder eine numerische Zeichenfolge ist. Das absint ()
Funktion konvertiert einen Wert in eine nicht negative ganze Zahl.
Nun ist es Zeit, die Einstellungsfelder hinzuzufügen.
/ ** * Druckt das Einstellungsfeld für Avatar-Uploads. * * @uses avatar_manager_get_options () Zum Abrufen von Plugin-Optionen. * @uses _e () Zur Anzeige der übersetzten Zeichenfolge aus translate (). * @uses checked () Zum Vergleich zweier Werte. * * @since Avatar Manager 1.0.0 * / function avatar_manager_avatar_uploads_settings_field () // Ruft Plugin-Optionen ab. $ options = avatar_manager_get_options (); ?>
Das avatar_manager_avatar_uploads_settings_field ()
Rückruf druckt das Avatar-Upload-Einstellungsfeld. Das geprüft ()
Die Funktion vergleicht zwei gegebene Werte und fügt bei gleichen Werten den Wert hinzu geprüft
Attribut zum aktuellen Kontrollkästchen. Das _e ()
Die Funktion wird später beschrieben, wenn ich den Internationalisierungsprozess erläutere.
/ ** * Druckt das Feld für die Standardgrößeneinstellung. * * @uses avatar_manager_get_options () Zum Abrufen von Plugin-Optionen. * @uses _e () Zur Anzeige der übersetzten Zeichenfolge aus translate (). * * @since Avatar Manager 1.0.0 * / function avatar_manager_default_size_settings_field () // Ruft Plugin-Optionen ab. $ options = avatar_manager_get_options (); ?>
Das avatar_manager_default_size_settings_field ()
Rückruf druckt das Feld für die Standardgröße.
Nach dem Hinzufügen der Einstellungsfelder sollten Sie die Plugin-Optionen unter dem Einstellungsdiskussionsbildschirm finden können.
Die erste Option steuert, ob Benutzer mit geringen Berechtigungen ein Avatar-Bild hochladen können oder nicht, während die zweite Option die Standardgröße für ein Avatar-Bild darstellt.
Damit Benutzer ihren Avatar verwalten können, müssen wir ihrer Profilseite einen neuen Abschnitt hinzufügen. Gehen wir weiter und fügen Sie den Avatar-Bereich unter dem Bildschirm Benutzer Ihr Profil hinzu:
/ ** * Druckt den Avatar-Bereich. * * @uses avatar_manager_get_options () Zum Abrufen von Plugin-Optionen. * @uses get_post_meta () Zum Abrufen von Meta-Feldern für Anhänge. * @uses remove_filter () Zum Entfernen einer Funktion, die an einen angegebenen Aktionshaken angehängt ist. * @uses _e () Zur Anzeige der übersetzten Zeichenfolge aus translate (). * @uses checked () Zum Vergleich zweier Werte. * @uses get_avatar () Zum Abrufen des Avatars für einen Benutzer. * @uses esc_attr () Für das Umgehen von HTML-Attributen. * @uses add_query_arg () Zum Abrufen einer geänderten URL (mit) Abfragezeichenfolge. * @uses self_admin_url () Zum Abrufen einer Admin-URL-Verknüpfung mit optionalem Pfad *. * @uses current_user_can () Zur Überprüfung, ob der aktuelle Benutzer eine bestimmte * Fähigkeit hat. * @uses submit_button () Für das Echo eines Submit-Buttons mit angegebenem Text und * entsprechender Klasse. * @uses __ () Zum Abrufen der übersetzten Zeichenfolge aus translate (). * * @since Avatar Manager 1.0.0 * * @param array $ profileuser Zu bearbeitender Benutzer. * / function avatar_manager_edit_user_profile ($ profileuser) // Ruft Plugin-Optionen ab. $ options = avatar_manager_get_options (); $ avatar_type = isset ($ profileuser-> avatar_manager_avatar_type)? $ profileuser-> avatar_manager_avatar_type: 'gravatar'; if (isset ($ profileuser-> avatar_manager_custom_avatar)) // Ruft Anhänge-Meta-Felder basierend auf der Anlagen-ID ab. $ custom_avatar_rating = get_post_meta ($ profileuser-> avatar_manager_custom_avatar, '_avatar_manager_custom_avatar_rating', true); $ user_has_custom_avatar = get_post_meta ($ profileuser-> avatar_manager_custom_avatar, '_avatar_manager_is_custom_avatar', true); if (! isset ($ custom_avatar_rating) || leer ($ custom_avatar_rating)) $ custom_avatar_rating = 'G'; if (! isset ($ user_has_custom_avatar) || leer ($ user_has_custom_avatar)) $ user_has_custom_avatar = false; if ($ user_has_custom_avatar) // Entfernt die an den angegebenen Aktionshaken angehängte Funktion. remove_filter ('get_avatar', 'avatar_manager_get_avatar'); ?>
Das show_user_profile
und edit_user_profile
Aktionen helfen bei der Anpassung der Benutzerprofilseite. Das $ Profilbenutzer
Parameter ist a WP_User
Objekt des Benutzers, der bearbeitet wird. Das get_post_meta ()
Funktion gibt die Werte der benutzerdefinierten Felder mit dem angegebenen Schlüssel aus dem angegebenen Beitrag zurück. Das leeren()
Funktion bestimmt, ob eine Variable leer ist. Das remove_filter ()
Funktion entfernt eine Funktion, die an einen angegebenen Filterhaken angehängt ist. Es ist erforderlich, unsere benutzerdefinierte Funktion zum Abrufen eines Avatar-Bildes zu entfernen.
Als Nächstes fügen wir eine Avatarauswahl, ein Upload-Formular und eine Bewertungsauswahl für das benutzerdefinierte Avatarbild jedes Benutzers hinzu.
Mit der Avatar-Auswahlfunktion kann der Benutzer wählen, ob er Gravatar oder ein benutzerdefiniertes Avatar-Bild verwenden möchte. Um es hinzuzufügen, schreiben Sie den folgenden Code:
Das get_avatar ()
Funktion ruft den Avatar für einen Benutzer ab, der eine Benutzer-ID oder E-Mail-Adresse angegeben hat. Um ein benutzerdefiniertes Avatar-Bild anhand einer Benutzer-ID abzurufen, haben wir die verwendet avatar_manager_get_custom_avatar ()
Funktion, die wir später schreiben werden. Das current_user_can ()
Funktion prüft, ob der aktuelle Benutzer über eine bestimmte Fähigkeit verfügt. Normalerweise dürfen Benutzer mit geringen Berechtigungen wie Abonnenten keine Dateien hochladen. Deshalb verwenden wir die $ options ['avatar_uploads']
Variable. Das esc_attr ()
Funktion entgeht HTML-Attributen. Das self_admin_url ()
Funktion ruft einen Admin-URL-Link mit optionalem Pfad ab. Das IS_PROFILE_PAGE
Konstante sagt uns, ob wir unser Profil oder das Profil eines anderen Benutzers bearbeiten. Das wp_nonce_url ()
Funktion ruft URL ab, wobei der URL-Abfrage Nonce hinzugefügt wurde. Vor dem Löschen eines Avatars bitten wir den Benutzer, dies durch einen Aufruf von zu bestätigen showNotice.warn ()
Methode bei der onclick
Ereignis des Lösch-Links, der eine Warnmeldung anzeigt.
Mit dem Upload-Formular kann ein Benutzer ein benutzerdefiniertes Avatar-Bild durchsuchen und hochladen:
Das submit_button ()
Die Funktion gibt einen Senden-Button mit angegebenem Text und der entsprechenden Klasse wieder.
Die Bewertungsauswahl wird nur angezeigt, wenn ein benutzerdefinierter Avatar verfügbar ist. Um es hinzuzufügen, schreiben Sie die folgenden Zeilen:
Der Benutzer kann eine geeignete Bewertung für das verwendete Avatar-Bild auswählen.
Nun, da wir den Avatar-Bereich hinzugefügt haben, ist es Zeit, ihn zu stylen. Außerdem schreiben wir ein paar JS, um die Formcodierung zu ändern. Dieser Schritt ist erforderlich, da wir ein Steuerelement zum Hochladen von Dateien hinzugefügt haben.
Um unser Plugin zu gestalten, öffnen Sie es Avatar-Manager / Avatar-Manager.css und schreibe die folgenden Zeilen:
# Profilseite .avatar-manager img margin: 2px 0; vertikal ausrichten: Mitte; # Profilseite .avatar-manager .delete color: red; Polsterung: 2px; # Profilseite .avatar-manager .delete: hover background: red; Farbe: #fff; Textdekoration: keine;
Dies richtet ein Avatar-Bild vertikal an einer Radiobox aus und formatiert den Delete-Link für eine nahtlose Integration mit der nativen WordPress-Benutzeroberfläche.
Als nächstes öffnen avatar-manager / avatar-manager.js und fügen Sie den folgenden Code hinzu:
jQuery (document) .ready (function () jQuery ('# Ihr-Profil') .attr ('enctype', 'multipart / form-data'););
Das .attr ()
Funktion setzt den Wert eines oder mehrerer Attribute für jedes übereinstimmende Element. Das enctype
Attribut gibt an, wie die Formulardaten beim Senden an den Server verschlüsselt werden sollen. Wir müssen seinen Wert in ändern Multipart / Formulardaten
um das Hochladen von Dateien zu ermöglichen.
Die sichere und empfohlene Methode zum Hinzufügen von Skripts und Stilen zu einer von WordPress generierten Seite ist die Verwendung von wp_enqueue_script ()
und wp_enqueue_style ()
. Zu diesen Funktionen gehören die Skripts und Stile, wenn sie noch nicht enthalten sind, und sie können Abhängigkeiten sicher handhaben.
/ ** * Pluginskripte und -stile für Benutzer werden in Ihrem Profilbildschirm angezeigt. * * @uses wp_register_style () Zum Registrieren einer CSS-Stildatei. * @uses wp_enqueue_style () Zum Einreihen einer CSS-Stildatei. * @uses wp_register_script () Zum Registrieren einer JS-Skriptdatei. * @uses wp_enqueue_script () Zum Einreihen einer JS-Skriptdatei. * * @since Avatar Manager 1.0.0 * / function avatar_manager_admin_enqueue_scripts () global $ hook_suffix; if ($ hook_suffix == 'profile.php' || $ hook_suffix == 'user-edit.php') // Registriert die CSS-Style-Datei eines Plugins. wp_register_style ('avatar-manager.css', AVATAR_MANAGER_PLUGIN_URL. 'avatar-manager.css', array (), '1.0.0'); // Plug-In CSS-Style-Datei. wp_enqueue_style ('avatar-manager.css'); // Registriert die JS-Skriptdatei des Plugins. wp_register_script ('avatar-manager.js', AVATAR_MANAGER_PLUGIN_URL. 'avatar-manager.js', array ('jquery'), '1.0.0'); // Plug-In-JS-Skriptdatei. wp_enqueue_script ('avatar-manager.js'); add_action ('admin_enqueue_scripts', 'avatar_manager_admin_enqueue_scripts');
Das admin_enqueue_scripts
action ist die erste Aktion, die mit den Admin-Script-Aktionen verknüpft ist. Dann die globale Variable $ hook_suffix
wird verwendet, um unsere Skripte und Stile nur auf den benötigten Seiten hinzuzufügen. Bevor Sie ein Skript oder einen Stil in die Warteschlange stellen, müssen Sie es zuerst registrieren. Das wp_register_style ()
Diese Funktion ist eine sichere Methode, um eine CSS-Stildatei für die spätere Verwendung zu registrieren. das wp_enqueue_style ()
Funktion wird verwendet, um es einzudecken. Ebenso die wp_register_script ()
und wp_enqueue_script ()
Funktionen werden verwendet, um unsere Plugin-JS-Skriptdatei zu registrieren und in die Warteschlange zu stellen.
Nach diesem Schritt sollten Sie die Plugin-Optionen im Bildschirm Benutzer Ihr Profil finden können.
Mit der ersten Option können Sie zwischen Gravatar oder einem selbst gehosteten Avatar-Bild wählen. Im zweiten Feld können Sie ein benutzerdefiniertes Avatar-Bild durchsuchen und hochladen. Die Option Avatar-Bewertung wird nur angezeigt, wenn ein benutzerdefinierter Avatar verfügbar ist. Aber dazu später mehr, wenn wir Avatar-Uploads bearbeiten.
Damit ist der erste Teil unseres Tutorials abgeschlossen. Ich hoffe, Sie haben die Zeit, die wir zusammen verbracht haben, genossen und fanden es nützlich. Im nächsten Teil werden wir das Avatar Manager-Plugin fertigstellen. Wir erledigen Avatar-Uploads und die Erzeugung von Bildern nach Bedarf, internationalisieren unser Plugin und vieles mehr. Danke fürs Lesen!