Adventskalender Tag 20: Eine Taxonomie-Galerie erstellen

Vor einiger Zeit hatte jemand in einer Anfrage in einer Gruppe folgendes Problem beschrieben: Es sollte möglich sein, Bilder mit einer Kategorie oder einem Schlagwort versehen zu können und dieses dann zu verwenden, um eine automatische Galerie zu füllen. Wenn man die normale Funktion zum Erstellen einer Galerie verwendet, dann ist diese statisch. Kommt ein neues Bild hinzu, muss man die Galerie manuell um die ID des neuen Bildes erweitern oder aber die Galerie löschen und neu einfügen. Genau das war aber recht umständlich. Ein neues Bild sollte erscheinen, sobald es mit der entsprechenden Taxonomie (Kategorie oder Schlagwort) markiert wurde.

Die Verschlagwortung von Bildern ermöglichen

Zuerst einmal war es notwendig, eine Möglichkeit zu schaffen, einem Bild eine Kategorie oder ein Schlagwort zuzuordnen. Da es sich bei jedem Bild um einen Post-Type „attachment“ handelt, ist das im Grunde auch recht einfach. Nur ist diese Möglichkeit standardmäßig nicht vorgesehen. Es ist aber nur ein Funktionsaufruf notwendig, um es doch zu ermöglichen:

Weiterlesen →

Adventskalender Tag 19: Selbst gehostete Web Fonts einbinden

Auf meinen Aufruf zum Vorschlag von Themen für die letzten Tage vor Weihnachten bekam ich die Bitte, doch mal auf die Einbindung von Web Fonts einzugehen, die nicht bei Google Fonts gehostet sind und die auch nicht über eine URL von einem anderen CDN eingebunden werden können. Das möchte ich in diesem Artikel gerne tun und auch zeigen, was man hierbei nicht tun sollte.

Eine Web Font selbst hosten

Ein weiterer beliebter Anbieter von kostenfreien Fonts ist Font Squirrel. Hier kann man Schriften herunterladen um sie dann selbst einzubinden. Sehen wir uns also mal am Beispiel der Schrift Aleo an, wie das genau funktioniert.

Weiterlesen →

Adventskalender Tag 18: Eigene CSS-Datei im visuellen Editor verwenden

Das heutige Thema ist wieder eines, was ich mit gemischten Gefühlen schreibe. Ich habe schon sehr häufig folgende Frage gehört: Wie kann ich meine Styles aus dem Frontend im visuellen Editor nutzen? Die Antwort auf diese Frage ist relativ einfach und ich möchte sie hier auch kurz beantworten. Am Ende des Artikels versuche ich aber noch zu erklären, was die Gefahr dabei ist.

Eine eigene CSS-Datei einbinden

Die Lösung für die Frage ist ziemlich einfach. Es gibt genau für diesen Zweck eine Funktion, die die Einbindung einer solchen CSS-Datei ermöglicht. Die Funktion heißt add_editor_style() und wird die folgt eingesetzt:

Weiterlesen →

Adventskalender Tag 17: Einen eigenen Shortcode erstellen am Beispiel eines Countdown

Heute kann es ja eigentlich nur ein Thema geben. Richtig, Star Wars 😉 Da ich heute Nacht in der Mitternachtsvorstellung war und gestern keine Zeit zum Schreiben hatte, kommt der Artikel auch etwas später. Und keine Angst, ich werde hier nichts spoilern 🙂

Ich hatte schon länger vor, einen Artikel zum Thema Shortcodes zu schreiben und was bietet sich da besseres an, als ihn gleich mit Star Wars zu kombinieren 🙂 Nachdem Episode VII heute angelaufen ist, können wir schon mal anfangen, die Tage bis zu Episode VIII zu zählen. Das wollen wir in Form eines Countdown machen, den wir über einen Shortcode einbinden.

Einen einfachen Shortcode definieren

Einen Shortcode über die Shortcode API zu definieren ist im Grunde ganz einfach. Man muss lediglich mit der Funktion add_shortcode() einen Namen für den Shortcode definieren und eine Callback-Funktion hierfür. Ein einfacher Shortcode sieht wie folgt aus:

Weiterlesen →

Adventskalender Tag 16: Google Web Fonts ohne Plugin verwenden

Am Freitag kam auf einem Workshop für WordPress-Neulinge die Frage auf, wie man einfach die Schriftart für einen Bereich der Seite ändern kann. Hierzu gibt es selbstverständlich viele fertige Plugins. Die Teilnehmer hatten zu diesem Zeitpunkt aber noch keine Plugins behandelt, sondern waren gerade dabei, ihr erstes Child-Theme zu schreiben. Ich möchte hier also kurz zeigen, dass es wirklich sehr einfach ist, eine Web Font einzubinden und die Schritte, die am Freitag besprochen wurden, noch einmal wiederholen, damit die Teilnehmer die einzelnen Schritte noch einmal nachvollziehen können. Aber keine Angst, auch für die fortgeschrittenen habe ich im Anschluss noch ein paar Tipps, die ihr vielleicht noch nicht kennt 🙂

1. Child-Theme erstellen

Als erstes wurde ein Child-Theme erstellt. Hierzu benötigt man in einfachsten Fall nur eine style.css Datei mit einem Import-Befehl. Möchten wir z.B. das Theme TwentyFifteen erweitern, legen wir z.B. in einem Unterordner wp-content/theme/adventskalender/ an und darin dann eine Datei style.css mit minimal folgendem Inhalt:

Weiterlesen →

Adventskalender Tag 15: Meta-Boxen schnell und einfach umsetzen

Im WP LETTER von gestern wurde ein Artikel verlinkt, in dem ein sehr einfacher Weg beschrieben wird, um eine Meta-Box zu erstellen. Auch ich habe vor einigen Monaten einen ähnlichen Ansatz umgesetzt, ihn aber bisher noch nicht vorgestellt. Das möchte ich nun an dieser Stelle nachholen und euch zeigen, wie einfach Meta-Boxen sind.

Wiederverwendung von Code

Ein wichtiges Prinzip in der Programmierung ist das DRY-Prinzip (Don’t repeat yourself). Dabei werden Codeteile, die man häufiger verwendet in Funktionen oder Klassen implementiert, um Redundanzen zu vermeiden und die Pflege des Codes zu vereinfachen.

Als ich das erste Mal mit Meta-Boxen zu tun hatte war ich nicht zufrieden damit, dass man viele Funktionen und Überprüfungen ständig dupliziert und für jede Meta-Box neu umsetzen muss. Ich habe daher versucht, diese in einer Basisklasse zu vereinen. Darüber hinaus habe ich zusätzlich ein Interface definiert, um eine falsche Implementierung dieser Klasse zu vermeiden.

Weiterlesen →

Adventskalender Tag 14: Ein einfaches Widget schreiben

Ich habe bei den letzten Projekten sehr häufig für bestimmte Funktionen ein Widget geschrieben. Im heutigen Beitrag möchte ich euch kurz erklären, wie einfach es ist, ein eigenes Widget zu schreiben, welche Funktionen man dafür benötigt und worauf man dabei achten sollte.

Die Basis für jedes Widget

Ein Widget kann entweder in einem Theme oder in einem Plugin implementiert werden. Ich verwende eigentlich fast immer ein Plugin dafür, da ich das Widget dann für ein anderes Projekt wiederverwerten kann. Den CSS-Code für die Ausgabe im Frontend speichere ich hingegen meistens im Theme. Für den Artikel werden wir alles im Plugin speichern.

Ein Widget ist ganz vereinfacht gesagt eine PHP-Klasse, die die Klasse WP_Widget erweitert. Sie implementiert dabei in der Regel folgende vier Funktionen:

Weiterlesen →

Adventskalender Tag 13: Vermeidung einer zusätzlichen WP_Query auf der Startseite

In meinen Beitrag von Tag 6 hatte ich ja erwähnt, dass die Funktion, die ich gebastelt habe, mit meinem Theme nicht funktioniert hat. Das Parent-Theme das ich verwende ist schon über dreieinhalb Jahre alt und ich muss gestehen, dass auch ich damals nicht gewusst hätte, was an dem Code falsch ist und wie man ihn verbessern kann. Im heutigen Beitrag möchte ich daher kurz erläutern, was genau der „Fehler“ ist, welche Folgen es hat und wie man es besser machen kann.

Der Grund für die zweite WP_Query

Das Theme, das ich verwende hat zwei Layout-Optionen. Eine mit nur zwei Spalten (Artikel und Sidebar) und eine mit einer zusätzlichen Spalte für „Sticky Posts“. Hierbei handelt es sich um solche Beiträge, die unter „Veröffentlichen -> Sichtbarkeit“ die Kontrollbox „Beitrag auf der Startseite halten“ aktiviert habe.

Weiterlesen →

Adventskalender Tag 12: Anzahl der Spalten im Dashboard ändern

Seit WordPress Version 3.8 fehlt im Dashboard die Möglichkeit, die Anzahl der Spalten im Dashboard einzustellen. Stattdessen haben die Entwickler entschieden, wie viele Spalten bei einer bestimmten Breite des Browsers angezeigt werden. Die Entscheidung für das Entfernen der Option folgt konsequent der Philosophie „Decisions, not options“. Aber wie genau ändert man nun die Anzahl? Diese Frage wurde vor genau 2 Jahren schon gestellt und ich möchte euch hier kurz die einfache Lösung vorstellen

Darstellung auf großen Bildschirmen

Wenn man beispielsweise einen Monitor mit einer Full-HD Auflösung (1920×1080 Pixel) besitzt, dann werden vier Spalten angezeigt, wovon aber nur die ersten beiden auch Dashboard-Widgets enthalten:

Weiterlesen →

Adventskalender Tag 11: Impressum, Datenschutzerklärung, Disclaimer und Co.

Viele von euch werden das heutige Thema vermutlich nicht wirklich spannend oder erfreulich finden. Aber es ist eines, das wirklich sehr wichtige ist. Und da ich in diesem Adventskalender auch ein wenig über meinen sonst eher technischen Tellerrand schauen möchte, bekommt ihr heute ein paar Hinweise, was ihr bei eurem Blog beachten müsst.

Ich hoffe die genannten Wörter im Titel dieses Artikels sind euch bekannt. Falls nicht, dann passt nun noch genauer auf. Ich möchte kurz auf alle davon eingehen. Wer mehr zu den einzelnen Themen wissen möchte, dem kann ich nur die einschlägigen Blogs der vielen Fachanwälte empfehlen. Ich persönlich bin Stammhörer des Podcast Rechtsbelehrung mit Marcus Richter und Thomas Schwenke. Daher möchte ich diesen an dieser Stelle als eine von vielen Quellen mit passenden Folgen erwähnen.

Das Impressum

Eine Frage, die sich immer sehr schnell stellt ist: Brauche ich ein Impressum? Oft hört man dann, dass ein privater Blog so etwas nicht braucht, ein „geschäftsmäßiger“ aber schon. Aber wann ist ein Blog privat und wann ist er geschäftsmäßig? Genau hier befindet sich eine große Grauzone, die man wirklich genau betrachten sollte. Da ich kein Rechtsanwalt bin, möchte ich hier auch keine Aussage treffen, denn wie sagen die Anwälte immer so schön? Es kommt drauf an. 🙂

Weiterlesen →