@Bastianoso

Custom field in Widget von WordPress ausgeben

Mit dieser Erweiterung der functions.php ist es möglich ein benutzerdefiniertes Feld eines Wordpress-Beitrages in einem Widget in der Sidebar auszugeben.

Bei manchen Artikeln, die ich hier schreibe, habe ich noch Randbemerkungen, die ich am Artikel, aber eben nicht im Artikel unterbringen möchte. Daher habe ich nach einer Lösung gesucht, ein benutzerdefiniertes Feld des Artikels zu verwenden und seinen Inhalt in einem Widget in der Seitenleiste anzuzeigen.

Eigentlich zeigen Sidebars im Blog ja immer die selben Inhalte, neue Artikel, meistgelesene Artikel, Blogroll, Tag-Cloud usw.
Mein Ansinnen war jedoch, artikelspezifische Daten in einem Widget in der Sidebar anzeigen zu lassen.

Dafür gibt es verschiedene Lösungswege. Man kann diverse PlugIns dafür nutzen oder in der functions.php die Ausführung von PHP erlauben, um das custom field im vordefinierten „Text“-Widget von WordPress auszugeben. Dem Sicherheitsrisiko der PHP-Ausführung wollte ich mich aber nicht hingeben und ein PlugIn scheint mir für diese einfache Aufgabe so, als würde man mit Kanonen auf Spatzen schießen.

Daher habe ich mich dazu entschlossen, die functions.php etwas aufzubohren und mir ein eigenes Widget zu programmieren, welches diese Aufgabe übernimmt.

So kannst Du ein benutzerdefiniertes Feld in einem Widget ausgeben

Als erstes müssen wir uns ein eigenes Widget programmieren. Das klingt aber komplizierter, als es ist. Eigentlich ist es ganz einfach und kann mit wenigen Zeilen Code bequem in der functions.php Deines Child-Themes (Du benutzt doch ein Child-Theme, oder?!) erledigt werden

Eigenes Widget in der functions.php definieren

Um ein eigenes Widget zu erstellen, fügst Du den folgenden Code einfach ans Ende Deiner functions.php ein (vor dem schließenden PHP-Tag)

Füge diesen Code in Deine functions.php und besuche die Seite „Widgets“ im Backend von WordPress. Du solltest das neue Widget „Notizen“ dann dort sehen können.

Widget in der Sidebar einpflegen

Wenn Du das Widget dort siehst, kannst Du es zu einer beliebigen Sidebar hinzufügen und ihm einen Titel geben:

Ich habe mich für das generische „Hinweise“ entschieden, da es für viele Situationen passt.

Artikel bearbeiten

Jetzt musst Du nur noch zu einem beliebigen Artikel in WordPress das custom field hinzufügen und mit einem Value belegen, damit etwas angezeigt wird.

Bearbeite einen Artikel und aktiviere ggf. mit dem Menü „Ansicht anpassen“ oben rechts die custom fields/benutzerdefinierte Felder.

Du solltest nun so etwas sehen können:

Wenn Du „Notizen“ nicht bereits aus dem Dropdown auswählen kannst, weil Du es noch nie benutzt hast, dann klicke einfach auf „Neu eingeben“ und gib „Notizen“ ein.
Es ist jedoch wichtig, dass Du wirklich „Notizen“ eingibst, denn danach sucht der Code im Widget, welches Du eben angelegt hast.
Wenn Du lieber einen anderen Namen für das custom field benutzen möchtest, dann musst Du den Namen auch im Code abändern (die Stelle ist mit einem Kommentar markiert).

Du kannst an dieser Stelle nicht nur Text eingeben, sondern auch simple HTML-Tags nutzen, um Deinen Text zu formatieren.
Mit Anpassungen am Code in der functions.php kannst Du natürlich auch noch ganz andere Dinge realisieren, z.B. Bilder anzeigen, in dem Du die eingegebene URL entsprechend auszeichnest oder oder oder — Deiner Phantasie sind kaum Grenzen gesetzt 😉

Wenn Du den Artikel jetzt aktualisierst und ins Frontend wechselst, solltest Du das Widget bei dem Artikel sehen können.
Bei Artikeln, die das custom field nicht haben, wird das Widget mit CSS ausgeblendet.

Sicherlich gibt es dafür schönere Lösungen, aber die ging mir am schnellsten 😉

Bei diesem Artikel solltest Du als letztes Widget ebenfalls das Hinweise-Widget sehen können:

Artikel-Bewertung (3 / 1)

2
Hinterlasse einen Kommentar

  Abonnieren  
neueste älteste meiste Bewertungen
Benachrichtige mich bei
RSD
Artikel-Bewertung :
     

Freie Auswahl der Widgets Title oder Leer lassen um individuell im Custom ein anzugeben für die Ausgabe. benötigt den Hack nicht – ansonsten gleicht es sich bis auf den Widgets Namen „Memo“ und des gleichen Aufruf im Cutomfield Title: memo (achte auf groß kleinschreibung – hier bitte klein). LG und Danke für die Idee. ; ) /* ERSTELLT WIDGET UM IM CUSTOMFIELF "memo" MEMOS AUSZUGEBEN */ // Widget bei WordPress registrieren function memo_load_widget() { register_widget('memo'); } // Widget Memo für das Dashboard konfigurieren class memo extends WP_Widget { function __construct() { parent::__construct( 'memo', // Widgets ID __('Memo','memo_widget_domain'), // Widget-Name array(… Weiterlesen »

Datenschutz Netzwerktechnik Mac OS X Einkaufen Kredite Mathematik Facebook Terminal Projektmanagement Ernährung Haushalt iOS Party Programmieren projekt52 Fernsehen Konzert Hamburg Windows Videos IST-Analyse Datenbanken Deutschland BarCamp web 2.0 URL Sibirische Katze Weiterleitung Kater C++ Altona Internet Sicherheit OS X Kino Werbung Webserver Computer Laufen Organisation Apple twitter Datenübertragung Microsoft Abschlussprüfung Wirtschaft Buchhaltung Fotos Film Sommer Fahrrad Bilanz Inventur IKEA Musik Tipps & Tricks Weihnachten E-Mail Ausbildung Netzwerk Redirect Silvester Sport iPhone Gesellschaft

Hinweise zum Artikel

Der Inhalt dieses custom fields wird im Widget in der Sidebar neben dem Artikel angezeigt.

Heiß diskutiert