Shortcode: Jak zmodyfikować szablon tak, aby wyświetlał reklamę w dowolnym miejscu artykułu

1 lutego, 2012 | wrociu | 0 komentarzy
ShortCode
Udostępnij dalej:

Kilka dni temu pisałem o tym jak zmodyfikować szablon tak, aby wyświetlał reklamę pomiędzy artykułami. Dziś pokażę jak wzbogacić szablon o shortcode, który pozwoli wyświetlać reklamę w dowolnym miejscu artykułu. O samym shortcode API najlepiej poczytać u samego źródła, czyli tu.

Shortcode bez parametru

Naszym celem jest stworzenie shortcode [moja_reklama] , tak aby każdorazowe jego użycie powodowało wyświetlenie reklamy Adsense. W tym celu w pierwszej kolejności otwieramy plik functions.php naszego szablonu i dodajemy następującą funkcję:

function adDisplayFunc( $atts ) {
    $value = '<script type="text/javascript"><!--
google_ad_client = "ca-pub-000000000000000";
/* bodyheader - baner */
google_ad_slot = "0000000000000";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>';

    return $value;
    }

W liniach 2-12 wstaw własny kod odpowiadający wyświetlaniu reklamy. Może to być dowolna inna reklama, nie musi to być Adsense :). Poniżej funkcji należy jeszcze dodać:

add_shortcode('moja_reklama', 'adDisplayFunc');

i gotowe. Teraz za każdym razem, kiedy w użyjesz shortcode [moja_reklama] zostanie wyświetlona reklama w w tym właśnie miejscu.

Shortcode z parametrem

Załóżmy, że chcielibyśmy przemiennie wyświetlać dwa różne formaty reklamy. Chcielibyśmy to obsługiwać jednym shortcode z parametrem sterującym jaki typ reklamy chcemy wyświetlać. Parametr nazwiemy „format” i dla wartości równej „1” będzie on wyświetlać reklamę w formacie 468 x 60 pikseli. Dla wartości równej „2” będzie wyświetlana reklama w formacie 336 x 280 pikseli. Takie założenia spełni taka funkcja, którą należy dodać do pliku functions.php:

function adDisplayFuncWithParam( $atts ) {
    extract(shortcode_atts(array(
    'format' => '1',
    ), $atts));

    switch ($format) {
    case 1 :
    $value = '<script type="text/javascript"><!--
		google_ad_client = "ca-pub-0000000000000";
		/* bodyheader - baner */
		google_ad_slot = "0000000000000";
		google_ad_width = 468;
		google_ad_height = 60;
		//-->
		</script>
		<script type="text/javascript"
		src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
		</script>';
    break;
    case 2:
    $value = '<script type="text/javascript"><!--
		google_ad_client = "ca-pub-0000000000000";
		/* Duzy prostokat 336x280 */
		google_ad_slot = "0000000000000";
		google_ad_width = 336;
		google_ad_height = 280;
		//-->
		</script>
		<script type="text/javascript"
		src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
		</script>';
    break;
    default:
    $value = ' ';
    }
    return $value;
    }

Poprzednie powiązanie shortcode z funkcją zastępujemy:

add_shortcode('moja_reklama', 'adDisplayFuncWithParam');

Zrobione! Jak wywołać shortcode? Możliwe są następujące wywołania:
[moja_reklama] – wywołanie bez parametru. Domyślnie parametr zostanie ustawiony na „1” i wyświetlimy prostokąt 468 x 60.
[moja_reklama format=1] – wyświetlamy reklamę 468 x 60.
[moja_reklama format=2] – wyświetlamy reklamę 336 x 280.

Miłej pracy!


zostaw odpowiedź