Sidebar
ein-/ausblenden

Werbung via Shortcode und benutzerdefinierte Felder in WordPress

Plugin für WordPress SEO

Anzeige

Seit Version 2.5 wird WordPress mit der Shortcode-API ausgeliefert, näheres dazu hatte ich im Artikel „WordPress 2.5 Shortcode API“ erläutert. Nun hatten ich ihm Rahmen mit einem lieben Leser eine Anforderung, die sicher nicht selten vorkommt und die man mit Hilfe dieser Shortcode-API und den benutzerdefinierten Feldern sehr schön lösen kann.

Pro Artikel hinterlegt der Autor drei benutzerdefinierte Felder, in einem weiteren Artikel schon mal näher erläutert: bild, link, linktext. Im Text kann er den Shortcode [werbung] setzen. Diesen erkennt WordPress und mit Hilfe der folgenden Funktion werden die entsprechenden Daten geladen und die Werbung wir dann an dieser Stelle eingebunden.

Shortcode und benutzerdefinierte Felder in WordPress

Die folgende Funktion kann als Plugin oder in der functions.php des Themes abgelegt werden.


function example_link() {
	global $wp_query;

	$postID     = $wp_query->post->ID;
	$mylink     = get_post_custom_values('link', $postID);
	$mypic      = get_post_custom_values('bild', $postID);
	$mylinktext = get_post_custom_values('linktext', $postID);

	return '<a href="' . $mylink[0] . '"><img title="' . $mylinktext[0] . '" src="' . $mypic[0] . '" alt="" /></a>';
}

add_shortcode('werbung', 'example_link');

Im Text erscheint nun auf recht einfache Weise das Bild mit Link und Linktext. Die Lösung zeigt nur einen Lösungsweg und kann sicher in der einen oder anderem Form Anwendung finden. Trotzdem sollte man überlegen, wie man die Shortcodes nutzen will und die Funktion darauf hin anpassen. Ähnlich könnte auch die Daten für Link, Bild, und Linktext aus anderen Datenfeldern kommen, die Shortcode-API erleichtert es aber, dass Autoren derartige Inhalte in den Artikel einbinden können.

14 Kommentare und 1 Trackback zu „Werbung via Shortcode und benutzerdefinierte Felder in WordPress“

  1. 1
    Kommentar von Ralf

    Sehr schönes Beispiel für die Shortcodes bzw Custom Keys. Werde etwas ähnliches demnächst für einen Kunden brauchen, bzw in deren Internet Auftritt massiv auf Shortcodes setzen müssen da viele Dinge einfach zu komplex sind um es einem Laien verständlich zu machen.

  2. 2
    Kommentar von Alexander Hahn

    Sehr schön mal solch ein Beispiel zu haben! Das wird mir sicher noch nützen!

  3. 3
    Kommentar von nastorseriessix

    Danke für das Beispiel, werde ich mir mal bei Zeiten zu Gemüte führen und genauer anschauen um es dann auch selber zu nutzen. Hab mich bisher immer vor dem Einsatz von Shortcodes gedrückt, da ich keine Lust dazu hatte mich damit zu befassen. Aber mit so einem guten Beispiel, sollte selbst mir das gelingen. :)

  4. 4
    Kommentar von Patrick

    Eine einfache und elegante Lösung, wie ich finde. Danke für den Tip. Lässt sich bestimmt irgendwann mal verwenden.

  5. 5
    Pingback von // TBDTTT » Benutzerdefinierte Felder
  6. 6
    Kommentar von Adrian

    Und noch schöner wäre es, wenn man shortcodes in meta_value-Feldern nutzen könnte.
    Leider setzt WP sie dort aber nicht um: [text] bleibt bei der Ausgabe: [text].
    Würde gerne den Autoren eines Blogs verschiedene Adressen-Snippets anbieten [adr01] etc., die sie dann nicht immer vollständig in die value-Felder tippen müßten.
    Gibt es da vielleicht eine Lösung?

  7. 7
    Kommentar von Frank Bültge

    @Adrian: doch, man sollte die Inhalte von benutz. Feldern in Shortcodes nutzen können, eventuell ist das Plugin ein Tipp

  8. 8
    Kommentar von Adrian

    Danke, das ist ein Tipp. Leider nicht der Richtige. Dann habe ich mich unverständlich ausgedrückt: Ich möchte nicht meta_values in shortcodes nutzen, sondern umgekehrt ;)

    Beispiel: Nach dem eigentlichen Artikel (Veranstaltung) kann der Autor Angaben machen, die dann in eine Tabelle fließen. Die optionalen Felder habe ich mit Custom Fields für ihn bereits angelegt (dank Flutter-Plugin sehr einfach). Nun finden die Veranstaltungen an verschieden Adressen statt, die er mit shortcodes eingeben können soll.
    Statt "UncooleEckkneipe, Vermüllte Straße 123, 12345 Hippesheim" sollte er nur [adr5] eingeben müssen. Die shortcodes liegen bereits vor, da es nur 10 Orte sein können.

  9. 9
    Kommentar von Frank Bültge

    Nochmal, du willst also Shortcodes in den benutz. Feldern verwenden?

  10. 10
    Kommentar von Ralf Hortt

    mach die Ausgabe einfach mit

    $meta_value = wp_post_meta($ID, $metakey, TRUE);
    echo apply_filters('the_content', $metavalue);

  11. 11
    Kommentar von Adrian

    Ja. ("Und noch schöner wäre es, wenn man shortcodes in meta_value-Feldern nutzen könnte.")

  12. 12
    Kommentar von Ralf Hortt

    Meinst du dass du den Inhalt direkt angezeigt bekommen willst?
    Ich versteh nicht so ganz worauf du willst...

  13. 13
    Kommentar von Adrian

    NACH Eingabe von Titel und Content des Events kann der Autor über diverse custom fields Daten eingeben (Startdatum, Seminarleiter, Kosten, Ort etc.), die eine Tabelle füllen, die per Template an den Artikel angefügt wird.
    Er sieht links z.B. "Ort" (meta_key) und rechts ein Textinputfeld (meta_value), in das er die Adresse eingibt.

    Adressen soll er als shortcode in das Textinputfeld eingeben können (er weiß z.B., dass Adresse xy den shortcode [adr_xy] hat).
    Das aber funktioniert bisher nicht. Nach Veröffentlichung steht an Stelle der Adresse nur der shortcode "[adr_xy]" in der Tabellenzelle. Ich weiß nicht, wie ich mich noch anders ausdrücken soll...

  14. 14
    Kommentar von Frank Bültge

    Was aber bedeutet, dass er die Shortcodes kennen muss. Ich vermute, dass du mit einem Plugin besser bedient wärest, zumindest was den Aspekt Nutzbarkeit und Usability betrifft. Metaboxen lassen sich recht einfach integrieren und dort könnte man diverse Inhalte anbieten, so dass man als User wirklich nur auswählen muss.
    Aber, ich habe nun verstanden, Shortcodes als Wert für benutzdef. Felder.

  15. 15
    Kommentar von Adrian

    Danke für eure Antworten. Wenn es die shortcode-API nicht zuläßt (was noch immer ungeklärt ist), werde ich deine Anregung bzgl. Metaboxen aufgreifen. Ist mir noch neu, schau ich mir an.
    Bin soeben auf das Plugin "Pods" gestoßen, dass ein weites Feld für die CMS-Nutzung von WP öffnet (und weitaus solider und variabler ist als die Nuzung von custom fields inkl. Flutter). Das könnte auch eine gute Lösung sein.

Kommentar schreiben

Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.

Kommentar-Hilfe

händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.

Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.

xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>

Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als &lt; und > als &gt; einfügt.

E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.

Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.

Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.

Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.