WordPress: Ein eigenes SidebarWidget Plugin in einer Minute
11. Februar 2008 | 22 KommentareMit den WordPress Sidebar-Widgets lassen sich die Inhalte der Sidebar im Backend einfach per Drag’n drop hinzufügen oder ausblenden. Dies sind z.B. Seiten, Kategorien, Tags oder eigener Text/HTML-Code.
Manchmal will man aber auch eigenen Funktionen der Sidebar hinzufügen und direkt per Drag’nDrop einfügen. Das geht mit ein paar Zeilen Code in einer Minute.
Was bringt ein Widget?
Bei den aktuellen WordPress Default-Installationen (ab WP .2.2) kann man über Themes > Widgets seine Sidbar anpassen und Inhalte hinzufügen. Wir wollen hier ein Widget erstellen, das in der Sidebar „Hallo Welt!“ ausgibt. Das ist zwar nicht revolutionär, man lernt dabei aber erstens, wie man ein eigenes WordPress-Plugin erstellt und zweitens, wie dieses auch in der Sidebar Inhalte ausgibt. Und anstelle von „Hallo Welt!“ kann man natürlich auch eigenen PHP-Code einfügen.
Man konnte natürlich auch schon früher eigene Inhalte in der Sidebar ausgegeben, indem man einfach die sidebar.php angepasst hat. Diese individuellen Änderungen gehen aber verloren, wenn man mit den Widgets arbeiten möchte. Um um wieder eigene, selbst geschriebene Funktionen und die Widgets gleichzeitig nutzen zu können, kann man sich einfach selbst ein Widget erstellen und so die Drag’n Drop-Funktionalität nutzen.
Kann mein WordPress-Theme das?
Vorrausetzung, dass die Sidebar-Widgets laufen, ist ein aktuelles WordPress & Theme, das Widgets unterstüzt (oder eine SidebarWidgets-Plugin). Wer eine aktuelle WordPress-Version mit einem aktuellen Template laufen hat, muss sich darum keine Sorgen machen und kommt mit der Minute aus.
Ob das Dein aktuelles Theme das kann, findest Du mit einem Blick in die sidebar.php heraus. Dort sollte dort am Anfang etwas wie <?php if ( !function_exists(‚dynamic_sidebar‘) || !dynamic_sidebar() ) : ?> stehen. Außerdem gibt es im Template-Verzeichnis noch eine functions.php die für die Ausgabe der Widgets zuständig ist. Gehen wir der Einfachheit halber mal davon aus, dass das alles gegeben ist. Wenn nicht, hilft dieser Artikel oder dieses Plugin weiter.
Noch 30 Sekunden…
Also schnell einen
1: Texteditor öffnen,
2: den nachfolgenden Code kopieren und einfügen.
<?php
/*
Plugin Name: meinWidget
Plugin URI: https://blog.undkonsorten.com
Description: Dieses Plugin erstellt ein Sidebar-Widget das „Hallo Welt“ in der sidebar ausgibt.
Author: Thomas Alboth // undkonsorten
Version: 1.0
Author URI: https://blog.undkonsorten.com
*/
function widget_sidebar_init() {
if ( !function_exists(‚register_sidebar_widget‘) )
return;
function widget_sidebar() {
// Hier kann man eigenen Code einfuegen
$ausgabe = „Hallo Welt!“;
echo $ausgabe;
}
register_sidebar_widget(‚meinWidget‘, ‚widget_sidebar‘);
}
add_action(‚plugins_loaded‘, ‚widget_sidebar_init‘);
?>
3: Speichern unter meinwidget.php
4: Die Datei per FTP in das Verzeichnis wp-content/plugins kopieren
Jetzt kann man das Plugin aktivieren und unter Themes > Einstellungen Widgets das eigene Widget in die Sidebar ziehen (siehe Bild). Auf der Seite wird nun „Hallo Welt!“ ausgegeben.
Jetzt müsste in der sidebar „Hallo Welt!“ ausgegeben werden. Nun kann man sich daran machen, in diese Ausgabe-Funktion anzupassen und eigenen, etwas mächtigeren PHP-Code einfügen.
Sinnvolle Sidebar-Widgets Plugins
WYSIWYG Text Widget – zum einfachere Einfügen von Text in Sidebar-Widgets mit einem WYSIWYG-Editor
7. März 2008, 21:53 Uhr
Vielen Dank für diesen Beitrag der war sehr hilfreich und ich hab endlich ein Anhaltspunkt, wie ich ein eigenes Widget da rein bekomme.
31. März 2008, 01:04 Uhr
[…] WordPress: Ein eigenes SidebarWidget Plugin in einer Minute TYPO3/WordPress: Bildergalerie mit LightBox JS WordPress: Statische Seiten aus Navigation ausblenden/verstecken WordPress als ’statisches’ CMS […]
5. April 2008, 11:09 Uhr
[…] WordPress: Ein eigenes SidebarWidget Plugin in einer Minute WordPress 2.3. entdeckt Tagging TYPO3/WordPress: Bildergalerie mit LightBox JS WordPress 2.5: Updaten? Besser nicht! Erste Screenshots: WordPress 2.5 Fertiggewurschtelt: WordPress 2.5. RC1 […]
23. März 2010, 09:43 Uhr
Danke für den Artikel
5. Dezember 2010, 20:12 Uhr
Hallo!
Seit WP3 werden bei mir im Dashboard keine Widgets mehr angezeigt; ich kann auch nicht auf Widgets umstellen.
Per Code in die php-Datei eingefügte Widgets funktionieren hingegen.
Bei obigen Widget bekommen ich beim Aktivieren folgende Meldung:
„Parse error: syntax error, unexpected T_STRING in /www/htdocs/…./wp-content/plugins/meinwidget.php on line 15“
Woran liegt das?
Viele Grüße,
Michaela
12. Januar 2011, 08:02 Uhr
Danke.
Habe schon seit Wochen nach einer Möglichkeit gesucht ein Widget mit individuellem Code bestücken zu können, um eine Eintragungseite für einen Responder zu erstellen.
Einfacher wie mit dem WYSIWYG Text Widget geht’s nicht.
30. Januar 2011, 17:32 Uhr
Hallo,
bei geht der Code leider auch nicht, kannst du uns helfen?
Danke!
Gruss Nadine
6. März 2011, 19:01 Uhr
Hi,
ich denke ich weiß, warum es nicht geht. Da sind einige Fehler drin. Z.B. muss register_sidebar_widget in solchen “ Zeichen stehen, es ist aber in `´- Zeichen gespeichert. Die Zeichen entsprechend ändern, dann sollte es klappen.
Wenn ich mich nicht vertue, sollte es klappen!
Grüße
15. März 2011, 21:04 Uhr
Hallo und danke für die anleitung, was das eigne widget anbelangt: ich suche eine möglichkeit, ein paar grafiken in der sidebar anzuzeigen, was ich schon kann, aber zusätzlich sollen die auf klick hin vergrößert werden und möglichst wie in dem lightboxeffekt in der angegebenen hp, die ich gemacht hab. Bin grad dabei hier ein blog noch zusätzlich zu realisieren und da das design möglichst übereinstimmen soll, suche ich wie man das machen kann. Bin noch anfänger, was wp angeht…
Na, vielleicht hast du eine schnelle idee?
Viele grüße und danke schon mal, Marion
http://www.hanshenningpaetzke.de/blog
bei about hab ich mal probeweise die grafiken eingefügt, damit du siehst was ich meine und die sollen sich auf klick vergrößern wie auf dem hp
15. März 2011, 22:18 Uhr
Hi, mein posting von vorhin hat sich erledigt, denn ich habe bereits eine möglichkeit gefunden und zwar mit dem textwidget und einem plugin für die lightbox. War alles sehr einfach und in 10 minuten ganz nach meinem wunsch realisiert. Ich spiel erst seit einer woche mit wordpress rum und bin begeistert!
16. Juli 2011, 06:27 Uhr
Das kommt immer bei mir :
Das Plugin kann nicht aktiviert werden, da es einen fatalen Fehler erzeugt.
Parse error: syntax error, unexpected ‚/‘ in /wordpress/wp-content/plugins/meinwidget.php on line 15
Weiß jemand warum ?
16. Juli 2011, 06:27 Uhr
Ach habe gerade oben gesehen! Sorry
27. April 2012, 13:31 Uhr
Kann mir jemand sagen wie man eine Sidebar auf einer Hp mit dem Editor erstellt ist wichtig brauche das für ein Projekt
16. Mai 2012, 17:32 Uhr
danke, hat wunderbar geklappt :).
20. Februar 2013, 15:09 Uhr
Danke für den Artikel, geht echt einfach 🙂
1. August 2013, 17:09 Uhr
Zu dem Fehler: Das liegt an diesem Blog, das die „“ in typografische “” wandelt.
Es muß „Hallo Welt!“ heißen statt “Hallo Welt!”
(Hoffe im Kommentar bleiben die „“ richtig)
Gruß Arnd
1. August 2013, 17:10 Uhr
… nein, werden auch hier gewandelt. In Code-Blöcken ein Ärgernis! Hoffe mein Hinweis wurde trotzdem verstanden.
Arnd
13. Dezember 2013, 01:23 Uhr
Hi,
hab den code meiner „pseudo widgets“ für die Sidebar manuell in die Sidebar.php geschrieben und möchte diese jetzt in ein widget plugin packen. Dein Code sieht recht simple aus.
Eine Frage habe ich aber noch. Ich möchte ein widget nur in der post ansicht ausgeben bzw. von custom field werten abhängig machen. Wo müsste ich beispielsweise eine entsprechende if ( is_single()) abfrage einbauen damit das komplette widget nur unter dieser bedingung gerendert wird (und nicht etwa ein widget mit „leerer ausgabe“)?
Also von wo bis wo in deinem Hello world widget als Beispiel?
13. Dezember 2013, 01:58 Uhr
Hmm, die if is_single() abfrage scheint zu klappen, aber die custom field Ausgaben funktionieren nicht in dem widget. Muss ich Werte aus custom fields hier anders auslesen? Oder zusatzlich etwas definieren?
$var= get_post_meta($post->ID,’customfieldkey‘,true);
echo $var;
1. September 2014, 14:42 Uhr
Danke – hat super funktioniert!
5. September 2014, 15:41 Uhr
Ich kann das Widget zwar aktivieren, es steht mir hinterher aber nicht zur Verwendung bereit.
Kennt jemand das Problem?
4. April 2015, 12:49 Uhr
Habe nach diesem Muster Widget geschrieben. Widget läuft auf localhost und auch öffentlich (Hoster ist Strato).
Auf dem öffentlichen Web kann man sich als Admin nicht mehr anmelden. Lokal geht es!
Es erscheint auf der öffentlichen Login-Seite über den Login Feldern:
„FEHLER: Cookies sind wegen einer unerwarteten Ausgabe gesperrt.“