| Weitere Artikel aus dem Webentwickler Blog |
| Teilen |
Der erste Teil dieser Reihe hat das Problem umrissen und die Grundlagen gelegt: Das Ziel lautet, Werbeinserate in den Blog einzubauen, die genau steuerbar sein sollen. Eins ist von vornherein klar: Wir brauchen den Inhalt eines Posts und dessen ID (eindeutige Nummer). Da wir einen Filter für die veränderte Ausgabe eines Posts programmieren, benötigen wir auch einen aktiven Artikel und einen entsprechenden Filter, der auf diese Ausgabe wirkt.
Die Funktion wird sicherlich einen veränderten Inhalt ausgeben. Als Voraussetzung werden wir benutzerdefinierte Felder verwenden, da sie im Backend leicht und flexibel zu definieren sind. Am Besten bringen wir diese Gedanken am Ende der Datei functions.php in eine strukturierte Form, als Kommentar am Anfang der neuen Funktion.
...
/*****
* Version 1.4
* pNew_theContent($content)
* Info: Fuegt ein Inserat in einem Post ein
* notwendig: aktiver Post
* benuetzt: $content .......... Inhalt des aktiven Posts
* get_the_ID() ...... ID des aktiven Posts
* get_post_meta() ... Metafelder des Posts ermitteln
* Rueckgabe: veraenderter content als string
* abhaengig: add_filter()
*
* Post benoetigt folgende Metafelder
* inserat ...... all -> in allen Posts anzeigen
* single -> nur in der Einzelansicht
* fehlt das Feld wird kein Inserat angezeigt
* inseratPos ... top -> oberer Rand, vor content
* topLeft -> linkes, oberes Eck
* topRight -> rechts, oberes Eck [default]
* bottom -> zwischen content und Tags
* middleRight -> in der Mitte von content
*****/
?>
Da wir den Code unseres WordPress-Themas schon ein wenig kennen, ist uns bei verschiedenen Dateien die Funktion the_content() im Loop aufgefallen. Genau diese Funktion ist auch der sogenannte Hook, der Einsprungspunkt unseres Filters. Daher geben wir unserer neuen Funktion einen ähnlichen – aber auf keinen Fall den gleichen – Namen. Da es eine Funktion für unser Thema ist, setzen wir auch ein entsprechendes Präfix – eine Kennzeichnung am Anfang – vor den Funktionsnamen. Die Funktion selbst nimmt, da es sich um einen Hook für den Inhalt handelt, auch einen Übergabeparameter entgegen. Dies ist der Inhalt des aktiven Posts. Wie wir diesen Parameter benennen, ist eigentlich gleichgültig, aber $content ergibt sich aus der Logik des Codes. Daher können wir jetzt die Funktion definieren:
...
function pNew_theContent($content) {
...
}
?>
Nun können wir die Variablen definieren, die für unsere Funktion die Grundlage bilden. Als erstes benötigen wir einen Text für unser Inserat. Als zweites definieren wir ein assoziatives Array mit den CSS-Stilen für das Inserat. Wir definieren nicht alle Möglichkeiten, sondern nur die, die uns sinnvoll erscheinen. Als Schlüssel für die einzelnen Elemente verwenden wir die Positionsbezeichnung. Damit können wir sie später identifizieren und durch einen gedanklichen Trick leichter anwenden.
Ganzen Artikel lesen...




































