Der more-Tag ist ein wunderbares Werkzeug und Standard im WordPress-Umfeld. In der Sicht des Beitrags (single) wird dieser nicht beachtet und kann so als Platzhalter für Werbung dienen. Damit braucht man keine eigenen Schlüssel ablegen - bspw. Shortcodes, die man später eventuell nicht mehr benötigt. Insofern kann es nützlich sein, das Markup des more-Tag im Frontend zu ersetzen.
Als Beispiel soll die Integration von Adsense genutzt werden. Ich zeige kurz mal den Source wie das aussehen könnte und jeder kann sich dies anpassen. Die Idee stammt von René, der damit seine Site unterstützt.
Die folgende Funktion und der Aufruf des Filter gehört in die functions.php des Themes. Die Variable $myAddContent bekommt den Inhalt, der im Frontend für den more-Tag ausgegeben werden soll.
function fb_more_link($content) {
// ungleich single-post, dann standard-post
if ( !is_single() )
return $content;
// adsense code
$myAddContent = '
<div class="adsense">
<script type="text/javascript"><!--
google_ad_client = "pub-1234567890987654";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "8123785769";
google_color_border = "BBB28E";
google_color_bg = "FFFFFF";
google_color_link = "793907";
google_color_text = "161406";
google_color_url = "BBB28E";
google_ui_features = "rc:6";
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>';
// ersetze more-Tag mit eigenem Source
$content = preg_replace('/<span id\=\"(more\-\d+)"><\/span>/', $myAddContent, $content);
return $content;
}
add_filter( 'the_content', 'fb_more_link' );
Alternativ kann ähnliches auch via Shortcodes steuern und so ein wenig flexibler arbeiten - aber dazu dient ein anderer Beitrag von mir.
Dann ist natürlich die more Funktionalität weg. Wäre es nicht sinnvoller, den More-span zu suchen und dahinter die Werbung zu plazieren, damit die Funktionalität erhalten bleibt?
@Micha: die Funktion hat im single-Modus keine Wirkung, außer das sie Markup ablegt; aber man kann ja auch den Adsense code davor/dahinter platzieren.
@Sergej:
gute Idee.
Frank, da hast du mich auf eine Idee gebracht. Ich habe noch ein altes, unveröffentlichtes Plugin für die AdWords-Ausgabe nach Kategorien. Kann ich ja rauslegen.
Danke nochmal für die Hilfe
Im Apfelzeug-Blog wird auf Beitragsseiten auch ein statischer Banner gezeigt. Da realisiere ich es so:
if (is_singular()) {
$banner = 'mein code';
return preg_replace(
'#()#',
$banner. '$1',
$data
);
}
Damit wäre auch Micha glücklich
Hast du vielleicht einen Tipp für mich, wie man an der Stelle einen PHP Code ausgeben kann. Suche nämlich eine Möglichkeit dort (eigentlich in der Mitte eines Artikels) Ähnliche Artikel ausgeben zu lassen, wie es bei welt.de oder bild.de der fall ist.
@Paul: man kann auch anstatt der Variable mit dem Adsende-Code Funktionen aufrufen.
Interessantes Feature. Bietet sicherlich eine Menge vorzüge gegenüber der regulären Durchführung.
Danke für den Hinweis.
Das Beispiel leuchtet mir nicht ganz ein. In der single.php befindet sich in der Regel kein "More-Link" Markup. Wenn doch, sollte man das entfernen da es Overhead ist. ^^
@Dennis: Der Tag wird nicht ausgegeben, da WP dass filtert. Daher setzt die Lösung via Filter an und WP kann dann die Werbung nicht mehr filtern.
Also in meinem Blog mit WP 2.9 hab ich im Beitrag den Anker
, der direkt von der index.php aus angesprungen werden kann. (Sonst wäre diese Funktion ja auch sinnlos). Kaputt machen würde ich sie jedenfalls nicht.<span id="more-659"></span>
PS: Hier kommt keine Meldung mehr, das der Kommentar erst noch moderiert wird
Oje, ich habe die Sache leider falsch verstanden. Jetzt ist alles klar, aber ich bevorzuge dann doch lieber ShortCodes.
Wieder eine sehr interessante Lösung!
Ich fände es noch flexibler, wenn ich einen Filter hätte, der beispielsweise nach dem ersten H2-Tag oder H3-Tag etwas einfügt (in Deinem Beispiel Werbung). Wer seine Artikel gut strukturiert könnte somit recht effektiv Werbung einblenden. Was hältst Du davon?
Ist eine sehr coole Idee
Sollte man (was ja öfter mal vorkommen kann) keinen "more" Link benötigen...
Werde ich bei nächster Gelegenheit mal testen!
Danke für die Anregung!
Grüße aus Rosenheim
Sehr elegante Lösung, wäre nicht darauf gekommen, daß sich das so schön einfach und effektiv umsetzen läßt. Man muß nur um die Ecke denken, danke für den Hinweis!
Das ist mal eine klasse Idee. ich habe zwar zurzeit kein Projekt, wo ich es einsetzen kann, werd es aber auf jeden Fall bei Gelegenheit mal ausprobieren. Deine Seite bietet immer wieder tolle Anregungen
Viele Grüße
Iris
Interessanter Code für einen Tag. Vielen Dank für die Hilfe.
Genau soetwas habe ich lange Zeit für mein Blog gesucht und habe es mit umständlichen Mitteln und Plugins geschafft, vielen Dank für den einfachen Code!
Interessant ist an dieser Stelle auch das Plugin von Ruud Hein, das einem ermöglicht, nach dem x-ten Absatz einen AdSense-Block einzubauen. Die Funktionsweise ist recht ähnlich (preg_match_all).
Abgesehen vom möglicherweise gestörten Lesefluss ist nämlich gerade der inText-Bereich für einen Rectangle-Banner prädestiniert.
Die Idee finde ich sehr interessant und auch sehr gut. Wenn jemand erst einmal auf "more" klickt, dann schaut er sich auch erst recht die Werbung an. So verliert man zwar viele andere Besucher - auf der anderen Seite wird die Klickrate erhöht (denke ich)
Ist das die einzige Möglichkeit für den more-Tag ? Ich meine schonmal einen anderen Code gesehen zu haben...
das ist eine super idee. ich habe nämlich seit gestern adsense auf meinen blog gemacht und wenn das über den more tag ginge, ist das natürlich sehr gut. gibt es da zufällig ein plugin, welches die idee umsetzt, denn technisch, naja da habe ich es nicht so drauf.
Danke für die sehr interessante Idee, ich werde mir in den nächsten Tagen einmal eine ähnliche Lösung für mein Drupal-basiertes Blog überlegen.
Super Ansatz, einfache Lösung.
Werde ich gleich mal einbauen und ausprobieren. Endlich ist das Teil mal zu was nütze;)
Wie würde die Zeile: "ersetze more-Tag mit eigenem Source" / preg_replace aussehen, wenn man den Adsense-Code durch Javascript mit dem more-tag ersetzen würde?
@Michaela: bleibt so, dein JS-Code muss der Variable
$myAddContentzugeordnet werdenDanke für die Anregung - wenn man aber das more tag nicht verwendet, so kommt. logischerweise, auch kein Trenner in der Single = keine Werbeplatzierung.
Aber gibt es eine Lösung, außer der manuellen, automatisch in der Mitte eines Artikels einen Werbecode einzubauen?
Letze Antwort auf diesen Usernamen, siehe Beitrag dazu und warm !
Ja, gibt es - ist aber recht schwer sauber zu nutzen. Man muss das HTML filtern und bspw. nach dem 3 Absatz eine Werbung platzieren. Besser ist das Nutzen eines Shortcode für Werbung. Für beides gibt es im Blog Beiträge.
Danke an den Autor das ist doch mal ein super Artikel zu Wp, der Sinn macht und einem auch was neues vermittelt...
Vielen Dank für den Tipp. Ich werde den more-Tag mal ausprobieren^^
Gibt es eigentlich noch andere Alternativen dazu?
Schöne Idee! Habe Code problemlos eingebunden und es funzt.....
Besten Dank für den Code!
Danke für den Code. Ich habe ihn bei mir eingebunden und er funktioniert einwandfrei
Dein Tipp ist wirklich gut und einfach umzusetzen. Wenn mein Blog umfangreicher wird und ich Adsense einbaue werde ich es so machen wie hier beschrieben. Abgespeichert habe ich mir die Seite schon einmal.
Gruß und vielen Dank
der code ist super genial, passt toll, gerne wieder!
Komisch, auf einem Blog hat es einwandfrei funktioniert, aber bei diesem hier wird nichts ersetzt: http://www.klarakick.de
Kann es sein, dass die Ersetzung nicht bei allen Themes funktioniert?
Danke für den Code! Er funktioniert.
Ich würde gerne noch eine zusätzliche Abfrage in die functions.php einbauen. Nur wenn der Besucher von einer Suchmaschine kommt, soll die Anzeige angezeigt werden. Stammuser sollen somit weniger Werbung gezeigt bekommen. Habe schon etwas versucht, leider hat es nicht geklappt.
Jemand eine Idee, wie man das realisiert?
@Jane: schaue dir mein Landingsite plugin an, da ist sowas drin oder du nutzt einfach das Plugin und die Funktion daraus.
Sehr trickreich, werde so etwas Ähnliches testen um dynamisch Textbausteine in der Ausgabe eines oscommerce shops für Werbeartikel zu erzeugen.