Widgets ermöglichen es Ihnen, Nicht-Inhaltselemente in eine Seitenleiste oder einen beliebigen Widget-fähigen Bereich Ihrer WordPress-Website einzufügen. Sie können sie verwenden, um Banner, Anzeigen, Newsletter-Anmeldeformulare und andere Elemente zu Ihrer Website hinzuzufügen.
Sie können auch ein benutzerdefiniertes Widget erstellen, um einzigartige Funktionen mit einer persönlichen Note einzubetten, wie z. B. Social-Media-Feeds, aktuelle Beiträge oder HTML-Tags.
Bei WPBeginner verwenden wir benutzerdefinierte Widgets, um verschiedene Arten von Inhalten in unserer Website-Seitenleiste anzuzeigen. Und in diesem Artikel zeigen wir Ihnen Schritt für Schritt, wie Sie ein benutzerdefiniertes WordPress-Widget erstellen.

Hinweis: Dieses Tutorial richtet sich an DIY-WordPress-Benutzer, die WordPress-Entwicklung und Programmierung lernen.
Was ist ein WordPress-Widget?
WordPress-Widgets enthalten Code-Schnipsel, die Sie zu den Seitenleisten oder Widget-Bereichen Ihrer Website hinzufügen können.
Stellen Sie sich diese als Module vor, mit denen Sie Ihrer Website verschiedene Elemente und Funktionen hinzufügen können.
Standardmäßig verfügt WordPress über eine Reihe von Widgets, die Sie mit jedem WordPress-Theme verwenden können. Weitere Details finden Sie in unserem Leitfaden für Anfänger, wie Sie Widgets in WordPress hinzufügen und verwenden.

WordPress erlaubt es Entwicklern auch, ihre eigenen benutzerdefinierten Widgets zu erstellen.
Viele Premium WordPress-Themes und Plugins werden mit eigenen benutzerdefinierten Widgets geliefert, die Sie zu Ihren Seitenleisten hinzufügen können.
Zum Beispiel können Sie ein Kontaktformular, ein benutzerdefiniertes Anmeldeformular, eine Fotogalerie, ein E-Mail-Listen-Anmeldeformular und mehr zu einer Seitenleiste hinzufügen, ohne Code schreiben zu müssen.
Lassen Sie uns nun sehen, wie Sie ganz einfach Ihre eigenen benutzerdefinierten Widgets in WordPress erstellen können.
Bevor Sie ein benutzerdefiniertes Widget in WordPress erstellen
Wenn Sie WordPress-Programmierung lernen, benötigen Sie eine lokale Entwicklungsumgebung. Dies gibt Ihnen die Freiheit, Dinge zu lernen und zu testen, ohne sich Sorgen machen zu müssen, dass Ihre Website live ist.
Sie können WordPress lokal auf einem Mac mit MAMP oder einem Windows-Computer mit WAMP installieren.
Wenn Sie bereits eine Live-Website haben, können Sie diese auf einen lokalen Host verschieben. Weitere Details finden Sie in unserem Leitfaden unter wie man eine Live-WordPress-Website auf einen lokalen Server verschiebt.
Danach gibt es mehrere Möglichkeiten, Ihren benutzerdefinierten Widget-Code in WordPress hinzuzufügen.
Idealerweise können Sie ein websitespezifisches Plugin erstellen und Ihren Widget-Code dort einfügen. Dies ermöglicht es Ihnen, Code zu WordPress hinzuzufügen, der nicht von Ihrem WordPress-Theme abhängig ist.
Sie können den Code auch in die functions.php-Datei Ihres Themes einfügen. Er ist jedoch nur verfügbar, wenn dieses spezielle Theme aktiv ist.
Ein weiteres Tool, das Sie verwenden können, ist das WPCode Plugin, mit dem Sie ganz einfach benutzerdefinierten Code zu Ihrer Website hinzufügen können.
In diesem Tutorial erstellen wir ein einfaches Widget, das Besucher einfach begrüßt. Das Ziel ist es, sich mit der WordPress-Widget-Klasse vertraut zu machen.
Bereit? Legen wir los.
Erstellen eines einfachen WordPress-Widgets
WordPress wird mit einer integrierten WordPress-Widget-Klasse geliefert. Jedes neue WordPress-Widget erweitert die WordPress-Widget-Klasse.
Im Handbuch für WordPress-Entwickler werden 19 Methoden erwähnt, die mit der WP Widget-Klasse verwendet werden können.
Für dieses Tutorial konzentrieren wir uns jedoch auf die folgenden Methoden.
- __construct() : Dies ist der Teil, in dem wir die Widget-ID, den Titel und die Beschreibung erstellen.
- widget: Hier definieren wir die vom Widget generierte Ausgabe.
- Formular: Dieser Teil des Codes ist, wo wir das Formular mit Widget-Optionen für das Backend erstellen.
- Update: Dies ist der Teil, in dem wir Widget-Optionen in der Datenbank speichern.
Um ein benutzerdefiniertes Widget zu erstellen, können Sie den folgenden Codeausschnitt in Ihre functions.php-Datei oder in WPCode (empfohlen) kopieren und einfügen:
<?php
// Creating the widget
class wpb_widget extends WP_Widget {
function __construct() {
parent::__construct(
// Base ID of your widget
'wpb_widget',
// Widget name will appear in UI
__( 'WPBeginner Widget', 'textdomain' ),
// Widget description
[
'description' => __( 'Sample widget based on WPBeginner Tutorial', 'textdomain' ),
]
);
}
// Creating widget front-end
public function widget( $args, $instance ) {
$title = apply_filters( 'widget_title', $instance['title'] );
// before and after widget arguments are defined by themes
echo $args['before_widget'];
if ( ! empty( $title ) ) {
echo $args['before_title'] . $title . $args['after_title'];
}
// This is where you run the code and display the output
echo __( 'Hello, World!', 'textdomain' );
echo $args['after_widget'];
}
// Widget Settings Form
public function form( $instance ) {
if ( isset( $instance['title'] ) ) {
$title = $instance['title'];
} else {
$title = __( 'New title', 'textdomain' );
}
// Widget admin form
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>">
<?php _e( 'Title:', 'textdomain' ); ?>
</label>
<input
class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>"
name="<?php echo $this->get_field_name( 'title' ); ?>"
type="text"
value="<?php echo esc_attr( $title ); ?>"
/>
</p>
<?php
}
// Updating widget replacing old instances with new
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
return $instance;
}
// Class wpb_widget ends here
}
// Register and load the widget
function wpb_load_widget() {
register_widget( 'wpb_widget' );
}
add_action( 'widgets_init', 'wpb_load_widget' );
Der einfachste Weg, benutzerdefinierten Code zu Ihrer WordPress-Website hinzuzufügen, ist die Verwendung von WPCode. Es ist das beste Code-Snippet-Plugin, das hilft, Code-Snippets auf Ihrer Website zu verwalten und einzufügen, ohne etwas zu beschädigen.
Zuerst müssen Sie das WPCode Plugin auf Ihrer Website installieren und aktivieren. Wenn Sie Hilfe benötigen, lesen Sie bitte unsere Anleitung zur Installation eines WordPress-Plugins.
Nach der Aktivierung können Sie im WordPress-Admin-Panel zu Code-Snippets » + Snippet hinzufügen navigieren. Wählen Sie hier die Option „Eigene benutzerdefinierte Codes hinzufügen (Neues Snippet)“.

Danach können Sie den benutzerdefinierten Widget-Code in den Code-Vorschau-Bereich einfügen.
Sie müssen auch auf das Dropdown-Menü 'Code-Typ' klicken und die Option 'PHP-Snippet' auswählen.

Als Nächstes können Sie nach unten scrollen und die Einfügungsmethode für Ihren Code auswählen.
WPCode lässt Sie wählen, wo der Code ausgeführt werden soll. Für dieses Tutorial können Sie die Standardoptionen verwenden und ihn überall ausführen.

Sobald das erledigt ist, können Sie wieder nach oben scrollen, um den Snippet zu speichern.
Um den Snippet zu aktivieren, klicken Sie einfach auf den Schalter auf 'Aktiv'.

Um mehr zu erfahren, lesen Sie bitte unseren Leitfaden zum einfachen Hinzufügen von benutzerdefiniertem Code in WordPress.
Nachdem Sie den Code zu WordPress hinzugefügt haben, müssen Sie zur Seite Darstellung » Widgets in Ihrem WordPress-Admin-Panel gehen.
Klicken Sie dann auf das „Plus“-Symbol zum Hinzufügen von Blöcken, suchen Sie nach „WPBeginner Widget“ und wählen Sie das neue Widget aus.

Dieses Widget hat nur ein Formularfeld zum Ausfüllen.
Sie können Ihren Text eingeben und auf die Schaltfläche „Aktualisieren“ klicken, um Ihre Änderungen zu speichern.

Jetzt können Sie Ihre WordPress-Website besuchen, um das benutzerdefinierte Widget in Aktion zu sehen.
Hier ist ein Beispiel dafür, wie es auf unserer Demoseite aussieht.

Hinzufügen eines benutzerdefinierten Widgets im klassischen WordPress-Editor
Wenn Sie den klassischen Widget-Editor verwenden, um Ihrer Website neue Widgets hinzuzufügen, ist der Vorgang ähnlich.
In der Liste der verfügbaren Widgets gibt es ein neues Widget namens „WPBeginner Widget“. Sie müssen dieses Widget in Ihre Seitenleiste ziehen.
Geben Sie dann einen Titel ein und klicken Sie auf „Speichern“, um Ihre Widget-Einstellungen zu speichern.

Ihr neues benutzerdefiniertes Widget ist jetzt auf Ihrer Website live.
Nun, lassen Sie uns den Code noch einmal studieren.
Zuerst haben wir das ‚wpb_widget‘ registriert und unser benutzerdefiniertes Widget geladen. Danach haben wir definiert, was dieses Widget tut und wie das Backend des Widgets angezeigt wird.
Schließlich haben wir definiert, wie Änderungen am Widget behandelt werden.
Nun gibt es ein paar Dinge, die Sie vielleicht fragen möchten. Was ist zum Beispiel der Zweck von textdomain?
WordPress verwendet „gettext“, um Übersetzung und Lokalisierung zu handhaben. Diese textdomain und _e weisen „gettext“ an, einen String für die Übersetzung verfügbar zu machen. Weitere Informationen finden Sie in unserem Leitfaden, wie Sie übersetzungsbereite WordPress-Themes finden.
Wenn Sie ein benutzerdefiniertes Widget für Ihr Theme erstellen, können Sie textdomain durch die Textdomäne Ihres Themes ersetzen.
Alternativ können Sie ein WordPress-Übersetzungs-Plugin verwenden, um WordPress einfach zu übersetzen und eine mehrsprachige WordPress-Website erstellen.
Bonus: Benutzerdefinierte Stile zu Ihren WordPress-Widgets hinzufügen
Sobald Sie ein WordPress-Widget erstellt haben, können Sie ihm auch benutzerdefinierte Stile hinzufügen. Dies kann das Erscheinungsbild Ihrer Website verbessern, Konsistenz wahren und wichtige Informationen hervorheben.
Besuchen Sie dazu die Seite Darstellung » Widgets und fügen Sie das Widget hinzu, das Sie anpassen möchten. Sie sehen nun einige Optionen, um Farben und Typografie im Blockbereich auf der rechten Seite zu ändern.

Wenn das Widget diese Option jedoch nicht anzeigt, können Sie es anpassen, indem Sie CSS-Klassen hinzufügen, nachdem Sie den Tab 'Erweitert' erweitert haben.
Jetzt können Sie benutzerdefiniertes CSS zu Ihrem WordPress-Theme hinzufügen, das auf diese spezielle CSS-Klasse abzielt.

Gehen Sie dazu zur Seite Design » Anpassen und wechseln Sie zum Tab Zusätzliches CSS. Hier sehen Sie eine Vorschau Ihrer Website mit einem Feld, in das Sie Ihre CSS-Regeln eingeben können.
Sie können jetzt benutzerdefiniertes CSS verwenden, um das Erscheinungsbild Ihres Widgets anzupassen. Details finden Sie in unserem Tutorial, wie Sie benutzerdefinierte Stile zu Ihren WordPress-Widgets hinzufügen.

Wir hoffen, dieser Artikel hat Ihnen geholfen zu lernen, wie Sie einfach ein benutzerdefiniertes WordPress-Widget erstellen. Möglicherweise möchten Sie auch unseren Leitfaden zum Deaktivieren von Widget-Blöcken in WordPress und unser Tutorial zum Entfernen inaktiver Widgets in WordPress lesen.
Wenn Ihnen dieser Artikel gefallen hat, abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Video-Tutorials. Sie finden uns auch auf Twitter und Facebook.


Dan
Der String 'wpb_text_domain' wurde im Beispielcode nicht gefunden. Ich vermute, der Beispielcode wurde aktualisiert, aber die Artikelbeschreibung nicht?
Zur Bestätigung, ist ‚wpb_text_domain‘ tatsächlich ‚web_widget_domain‘ aus dem Beispielcode?
Vielen Dank im Voraus für jedes Feedback.
WPBeginner Support
Vielen Dank für den Hinweis, wir werden diesen Artikel aktualisieren und ihn besser und klarer formulieren.
Admin
marwan
Hallo,
kann ich den Code als separate class.php und nicht in der functions.php einfügen?
Karel Hanton
Vielen Dank für das großartige Tutorial. Ich habe den Code zu meinem Test-Plugin hinzugefügt und es funktioniert perfekt wie beschrieben – ich sehe das Widget in der Liste Darstellung » Widgets und kann es zum Seitenleisten hinzufügen.
Aber ich sehe das neue Widget nicht in der Liste des Seiten-Editors. Habe ich etwas übersehen, ist eine weitere Registrierung oder Einstellungen erforderlich?
Nochmals vielen Dank für Ihre Hilfe.
Aldo
Dies wird nun als „Legacy-Widget“ in WordPress angezeigt. Gibt es eine neue Möglichkeit, Widgets zu erstellen?
JP
das ist großartig, ein einfaches Kopieren und Einfügen war genau das, wonach ich gesucht habe. Danke!
WPBeginner Support
You’re welcome
Admin
Banu
Ich habe ein CRUD-Plugin erstellt und muss es auf einer Seite verwenden. Können Sie mir bitte Anleitungen geben, wie ich dieses Plugin auf einer Seite verwenden kann?
WPBeginner Support
Das hängt davon ab, wie Sie das Plugin eingerichtet haben. Um es auf einer Seite anzuzeigen, könnten Sie entweder einen Shortcode für die Anzeige im Frontend verwenden oder sich mit der Options-API befassen, wenn Sie es auf der Admin-Seite einer Website anzeigen möchten.
Admin
Kishan
Wie kann ich mehr als 1 benutzerdefiniertes Widget erstellen?
Und wie kann ich andere Felder wie Radio, Kontrollkästchen, Dropdown, Text im Widget einstellen?
WPBeginner Support
Sie müssten wpb_widget durch das ersetzen, wie Sie Ihr neues Widget nennen möchten, und dann würde der Code davon abhängen, was genau Sie hinzufügen möchten. Wenn Sie sich das WordPress-Codex ansehen, können Sie die verschiedenen verfügbaren Codes sehen.
Admin
Carmen
Hallo!
Derzeit entwickle ich ein Plugin und muss ein Widget erstellen, damit der Benutzer seiner/ihrer Website eine spezifische Funktionalität hinzufügen kann.
Ich habe den Code für Ihr Widget in eine Datei kopiert und die Datei in meinem Plugin-Verzeichnis gespeichert. Ich habe add_action und do_action in meiner Hauptdatei des Plugins verwendet, um es zu laden, aber es funktioniert immer noch nicht. Können Sie mir bitte helfen?
Danke!
WPBeginner Support
Leider hängt das stark davon ab, wie Ihr Plugin eingerichtet ist. Möglicherweise möchten Sie sicherstellen, dass beide Abschnitte dieses Codes geladen werden, damit das Widget hinzugefügt und angezeigt werden kann.
Admin
Maximilian K.
Eine kurze Frage, was ist, wenn ich Widgets erstellen möchte, in denen ich auch andere Widgets platzieren kann? Wie leere Bootstrap-Spalten 6-3-3 z.B. und in jeder Spalte kann ich dann Widgets wie Bild, Text, neueste Beiträge usw. platzieren?
Gibt es einen Befehl / ein Schlüsselwort, das signalisiert, dass in diesem Widget Platz für andere Widgets ist?
da ich irgendwie verwirrt bin über mein selbst erstelltes Theme und wie WP funktioniert... du siehst, ich bin Anfänger ^^
Ich habe bereits allgemeine Informationen wie den Seitentitel und Widget-Bereiche in meiner Fußzeile platziert, damit ich dort Menüs, verwandte Links usw. platzieren kann. Es hat funktioniert.
Aber jetzt bin ich verwirrt, wie ich meine Inhalte in WordPress so realisieren kann, wie ich sie zuvor gestaltet habe. Vielleicht helfen einige Schlüsselwörter, um mehr darüber zu lesen.
WPBeginner Support
Das würde mehr Anpassung erfordern, als wir in diesem Artikel behandeln. Möglicherweise müssen Sie untersuchen, wie Sie eine Seitenleiste für Code erstellen, den Sie verwenden können: https://www.wpbeginner.com/wp-themes/how-to-add-dynamic-widget-ready-sidebars-in-wordpress/
Admin
Lars
Tolles Tutorial! Hat perfekt funktioniert.
WPBeginner Support
Glad our tutorial could help
Admin
Watson Anikwai
Wie erhält man ein benutzerdefiniertes Post-Typ-Feld aus der WP-Datenbank und verwendet ein Widget, um es auf der Frontend anzuzeigen?
Vicky
ich kann keine zwei benutzerdefinierten Widgets hinzufügen... das zweite Widget wird nicht angezeigt....
was soll ich tun???.. bitte hilf
Ahad Bhatti
Wirklich verständlich und hilfreich. Danke.
Belitza Gomez
Hallo, ich möchte wissen, wo ich im Bereich verfügbare Widgets das „Custom Menu“ finden kann. Es wird nicht angezeigt und ich konnte keine Seite über dieses Widget zum Footer hinzufügen.
danke für deine Hilfe!!!!
Samdoxer
Hallo, wie kann ich ein Logo anstelle von Text anzeigen? Würde es ausreichen, die Logo-URL durch den Text zu ersetzen.
Vielen Dank im Voraus.
WPBeginner Support
Bitte sehen Sie sich Ihre Theme-Einstellungen an oder besuchen Sie die Seite Appearance » Customizer im Admin-Bereich. Dort finden Sie eine Option zum Hochladen Ihres Logo-Bildes.
Admin
Gary Foster
Was war zuerst da, das Widget oder die App?
Muss ein Widget registriert werden, wenn ja, wie bitte?
Wie schützt du deine Idee für ein Widget oder eine App am besten?
Danke euch allen
shelley
Diese Anweisungen funktionierten hervorragend, um mein benutzerdefiniertes Widget zu erstellen. Ich kann jedoch nicht herausfinden, wie ich die Schriftgröße auf 60 Pixel ändern kann. Es ist mir gelungen, CSS zu den Divi-Theme-Optionen hinzuzufügen, die den Text zentriert und einen Linienrand hinzugefügt haben. Aber wie ändere ich bitte das Styling der Schriftart? Das Hinzufügen von „font-size:60px“ funktioniert nicht. Ich möchte, dass die Schrift groß ist, wie ein Slogan, der über die Seite läuft. Danke.
Ahmad Farhan
Very helpfull. tankyou
Eyad
Vielen Dank für Ihre Tutorials
Luigi Briganti
Hallo! Ich hoffe, Sie können mir helfen.
Ich habe einen benutzerdefinierten Beitragstyp erstellt, der den Fahrplan für einen Shop anzeigt. Natürlich können Sie so viele Fahrpläne erstellen, wie Sie möchten, aber meine Notwendigkeit ist es, einen bestimmten Fahrplan in der Seitenleiste der Website anzuzeigen.
Zu diesem Zweck habe ich ein Widget erstellt, das die Zeitplan-Beiträge durchläuft und nur 1 anzeigt (nämlich den ersten, da ich in ASC-Reihenfolge sortiert habe). Dies ist eine temporäre Lösung, nur um zu sehen, ob das Widget funktioniert, und das tut es tatsächlich.
Was ich wirklich tun möchte, ist, im Backend eine Dropdown-Liste aller Beiträge vom Post-Typ „timetable“ anzuzeigen, damit ich den benötigten auswählen kann, wenn ich ihn brauche, und ihn im Frontend anzeigen kann. Wie kann ich das tun?
Danke, wenn Sie helfen können/möchten.
Anees Ijaz
Danke Mann, dass du mir Zeit gespart hast.
Kevin
Ich liebe diesen Beitrag, er hat mir oft sehr geholfen! Danke!