Adsense via Shortcode in WordPress einbinden

Hinweis: Dieser Artikel ist älter als zwei Jahre (letzte Änderung: 14. November 2014) und evtl. nicht mehr aktuell.

Ein paar mal erhielten wir schon die Frage, wie man wohl am „einfachsten“ die Google Adsense (Werbung) in ein WordPress einbinden kann. Spontan fiel uns da immer die Shortcode-Funktion ein. Den Shortcode kann man dann sowohl im Backend in einem Beitrag / einer Seite oder aber auch in einem Template einsetzen.

Wer von Shortcodes in WordPress noch nie was gehört hat, sollte vielleicht erst mal im codex stöbern: http://codex.wordpress.org/Shortcode_API

Um einen Shortcode für WordPress bereit zu stellen, benötigen wir erst einmal die eigentliche Funktion. Die legen wir der Einfachheit halber erst mal in der functions.php des verwendeten Theme ab. Später könnte man den Code in ein Plugin auslagern oder aber in der Toolbox von Sergej verwenden.

Also hier der Code:

function it_adsense() {
  return '<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
          <!-- Responsive -->
          <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-1234567890" data-ad-slot="6670802263" data-ad-format="auto"></ins>
          <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>';
}
add_shortcode('werbung', 'it_adsense');

Natürlich müsst ihr Script-Code mit eurem von Google generierten ersetzen (vorallem die data-ad-client Nummer).
Mit diesem Code haben wir jetzt erst ein mal nur den Adsense Code in WordPress hinzugefügt. Mit folgendem Shortcode kann man nun die Werbung in einem Beitrag / einer Seite darstellen:

[werbung]

Falls man nicht im Backend arbeitet, sondern direkt in einem Template (z.B. footer.php etc.) kann man ebenfalls den Shortcode aufrufen, diesmal aber etwas anders:

<?php if (function_exists('it_adsense')) echo do_shortcode('[werbung]'); ?>

Noch ein wichtiger Hinweis: Falls ihr den Shortcode in einem Widget verwenden wollt, müsst ihr in der functions.php eures Themes noch einen Filter hinzufügen:

add_filter('widget_text', 'do_shortcode');

Mit dieser Zeile befehlt ihr WordPress auch in Widgets den Shortcode ausführen zu dürfen.

Das ganze lässt sich natürlich noch verfeinern, z.B. ist es möglich dem Shortcode eine eigene CSS-Class in einem DIV mitzugeben, so lässt sich die Werbung auch noch unterschiedlich stylen. Im Code definieren wir erst mal eine Standard-Klasse, die sich aber anschließend über den Shortcode ändern lässt:

function it_adsense($atts) {

  $a = shortcode_atts( array(
  		'class' => 'standard',
  	), $atts );

  return '<div class="' . esc_attr($a['class']) . '">
          <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
          <!-- Responsive -->
          <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-1234567890" data-ad-slot="6670802263" data-ad-format="auto"></ins>
          <script>(adsbygoogle = window.adsbygoogle || []).push({});</script>'
          </div>;
}
add_shortcode('werbung', 'it_adsense');

So bekommt der DIV immer erst mal die Class „standard“. Wenn eine andere Class gewünscht ist, erfolgt der Aufruf, analog zu oben, so:

[werbung class="xyz"]

Den Rest lassen wir mal weiter unkommentiert, einfach mal die Codes vergleichen, dann sieht man schon die Unterschiede.

Empfehle uns: email facebook google plus twitter

Artikel Informationen

  • Erstellt am Donnerstag, 6. November 2014 um 12:21 (Letzte Änderungen 14. November 2014, 10:50) und abgelegt unter WordPress mit den Tags: , ,
  • Kommentare zu diesen Eintrag im Kommentar Feed Feed.
  • Du kannst einen Kommentar hinterlassen. Pingback ist im Augenblick nicht erlaubt.

2
Hinterlasse einen Kommentar

1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
  Abonnieren  
neuste älteste beste Bewertung
Benachrichtige mich zu:
mrdesign

Mit dem twentyten funktioniert es nicht. es wird egal wie eingebaut nur [werbung] ausgegeben.

Ich hab dir ja schon im wpde-Forum geantwortet, ich vermute du hast die Funktion an irgendeiner falschen Stelle in deiner functions.php des twentyten eingebaut.