Wie viele Blogger nutze auch ich auch das bekannte Partnerprogramm von Amazon um eine wenig meine Kosten und meinen Zeitaufwand zu decken.

Ihr seht z.B. in der rechten Spalte ein mit Hilfe des PartnerNet Programms erzeugten Partnerlink. In diesem Fall handelt es sich um das Widget “Empfohlene Produktlinks“. Dieses zeigt passende Produkte zu einem vorgegeben Stichwort und einer ausgewählten Amazon Kategorie.

An sich ist das Widget ganz gut und liefert auch gute Produkte zum Thema. Allerdings muss man die Kategorie und das Suchwort, oder besser gesagt die Suchphrase im Vorhinein festlegen.

Dann generiert Amazon aus den Vorgaben den HTML-Iframe-Code für das Widget. Dieses kann man dann wie ich in der eigenen Website, oder dem eigenen Blog integrieren.

 

Das Probelm

Hier ergibt sich aber bereit das Problem. Ich für meinen Teil habe zwar einen Technik-Blog, aber auch bei diesem handelt es sich nun mal manchmal um Artikel über Computer, um Bücher oder auch um Hi-Fi oder Gartenartikel. Die Bandbreite ist doch recht groß und mit einer Vorgegebenen Kategorie komme ich nicht weit.

Schließlich ist das Widget in der rechten Spalte zu sehen und damit auf jeder Seite und bei jedem Artikel eingeblendet. Ich brauchte also eine Möglichkeit die Eingaben, die ich im PartnerNet fix eingetragen muss, um den Partnerlink zu erstellen, dynamisch zu generieren. Die Suchphrase und die Kategorie sollen ja schließlich zu jedem Artikel passend sein.

 

Der erste Schritt – PHP im Widget erlauben

Dynamisch heißt bei WordPress ja fast immer PHP-Code nutzen. Standardmäßig erlaubt WordPress aber in dem Text-Widget keinen PHP-Code. Also musste ein Plugin her, welches genau dass möglich macht. Ich habe mich hier für das WP PHP widget entschieden.

Nach der Installation steht bei WordPress unter Design -> Widgets ein neues Widget mit dem Namen “PHP widget” zur Verfügung. Dieses erlaubt nun ganz einfach PHP Code auszuführen.

Jetzt ging es also ans Eingemachte.

 

Der zweite Schritt – Die Daten für die Artikel erzeugen

Zuerst hatte ich die Idee die Tags als Datengrundlage zu benutzen, die man eh für die Artikel unter “Schlagworte” pflegt. Zum Test habe ich mir diese dann auch Kommasepariert aus WordPress rausgezogen und dann dynamisch als Wert für den Parameter search benutzt.

 ... &search=<?php echo($amazonTags)?>& ...

Das so erzeugte Amazon-IFrame zeigte nun Artikel mit diesen Schlagwörtern.

Das Ergebnis war allerdings alles andere als Zufriedenstellend. Erstens möchte man ja nicht immer alle Tags für die Amazon-Suche benutzen, und zweitens hat man so immer noch nicht die Kategorie dem Artikel entsprechend gewählt.

Es musste also eine andere, bessere Lösung her.

 

Der dritte Schritt – “Benutzerdefinierte Felder” nutzen

Die geniale Lösung ist, einfach WordPress-Bordmittel zu benutzen. Ich habe die “Benutzerdefinierten Felder” für mich entdeckt. Sie sind Bestandteil jedes Artikels und es sticht damit quasi ins Auge diese auch für die Amazon-Partnerlinks zu benutzen.

Zwei benutzerdefinierte Felder habe ich also angelegt. Einmal “amazon_cat” für die jeweilige Kategorie und einmal “amazon_search” für die Suchphrase. Um den Wert für das Feld “amazon_cat” zu füllen braucht man lediglich im Amazon-Partnerprogramm einen Link mit der gewünschten Kategorie zu erzeugen und zieht sich dann aus dem Partnercode den Wert des Parameters mode.

Die Kategorie “Computers” hat dabei z.B. den Wert “computers“, die Kategorie “Bücher” den Wert “books-de” … usw.. Mittlerweile habe ich mir alle Werte aus den HTML-Option-Tags der  Kategorien-Combobox herausgezogen und als Lookup-Datei gespeichert ;).

 

Der vierte Schritt – “Benutzerdefinierte Felder” auslesen

Die Daten konnte ich nun also pro Artikel erzeugen. Allerdings fehlte jetzt noch der PHP-Code um diese Daten zu nutzen um den IFrame-Code Dynamisch zu generieren.

Um die “Benutzerdefinierten Felder” auszulesen gibt es eine Methode

<?php get_post_custom_values($key, $post_id); ?>

Der Parameter $post_id ist hier optional und wird auch nicht gebraucht, da wir ja immer nur die Werte aus dem aktuellen Post brauchen. Mit Hilfe dieser Funktion habe ich dann die beiden Werte ausgelesen und die jeweiligen Werte ein wenig aufbereitet, default-Werte für das nicht Vorhandensein gesetzt und in den IFrame-Code infiltriert.

Für diesen Post z.B. habe ich die Kategorie “books-de” und die Suchphrase “affiliate geld verdienen” benutzt. Den endgültigen Code seht Ihr folgend und das Ergebnis könnt Ihr in der rechten Spalte bewundern.

<?php
$amazon_cat = trim(implode(get_post_custom_values('amazon_cat'),','));
if ($amazon_cat == '')
   $amazon_cat = 'computers';
$amazon_search = trim(implode(get_post_custom_values('amazon_search'),', '));
?>
<iframe
  src="http://rcm-de.amazon.de/e/cm?t=s_k-21&o=3&p=12&l=st1&mode=<?php echo($amazon_cat)?>&search=<?php echo($amazon_search)?>&fc1=000000&lt1=_blank&lc1=1D5F83&bg1=FFFFFF&f=ifr"
  marginwidth="0"
  marginheight="0"
  width="300"
  height="250"
  border="0"
  frameborder="0"
  style="border:none;"
  scrolling="no">
</iframe>