Pagina 1 van 1

WordPress – Injecteer Advertenties in Posts

WordPress – Injecteer Advertenties in Posts
   0

Helaas zijn de meeste websites gedwongen om advertenties te plaatsen, al is het maar om te proberen de hosting kosten te dekken.
Dit geldt dus ook voor Tweaking4All – ik had liever helemaal geen advertenties, maar van donaties alleen gaat het echt niet lukken.

Het nadeel van advertenties, behalve dat ze als vervelend ervaren kunnen worden, is dat ze alleen wat opbrengen als ze op de juiste plaatsen verschijnen zodat bezoekers er op klikken (hint!).

Nu ben ik misschien niet de beste persoon om adviezen te geven, over waar je nu wel of niet advertenties moet plaatsen, maar voor mijn gevoel zijn er 3 “goede” locaties.
In het begin, aan het einde en … in het midden van een artikel of post.

In dit artikel laat ik je zien hoe je automatisch een advertentie in een artikel of post kunt plaatsen. Zonder het gebruik van plugins, zonder de post in de database te wijzigen. Gewoon geheel automatisch een advertentie voor de nde <H2> tag. De beschreven functie zal gewoon in de “functions.php” van jouw thema geplaatst worden.




Advertenties injecteren in WordPress Posts

Als eerste wilde ik het gebruik van een shortcode voorkomen.
Als eerste omdat ik de helft van de tijd vergeet ze te plaatsen als ik een artikel schrijf, en ten tweede omdat ik zo min mogelijk shortcodes in content wil plaatsen. Als is het maar omdat advertentie regels veranderen, of omdat ik een artikel misschien naar een andere website kopieer, of omdat de shortcode code niet meer beschikbaar gaat zijn, etc. Ik wil gewoon de post content zo schoon mogelijk houden.

Het voorbeeld hier gaat daarom automatisch een advertentie plaatsen, zonder de inhoud van een post te veranderen in de database.

Hiervoor gaan we de PHP functie “explode” gebruiken, welke een zogenaamde delimiter (scheidingsteken) gebruikt om de tekst van een post op te breken in stukken. Deze stukken worden vervolgens in een array geplaatst. Omdat “explode” de delimiter uit de tekst verwijderd, zullen we deze wel weer terug moeten zetten om onze tekst compleet te houden.

Omdat ik de advertentie voor de 2de <H2>  tag wil zetten, ga ik “<h2” als delimiter gebruiken.
Je hebt het goed gezien, ik gebruik maar een deel van de <H2> tag, omdat er nog mer informatie in de <H2> tag kan staan, bijvoorbeeld:

<h2 id="1234">Hoofdstuk X</h2>

Met mijn code voorbeeld gaan we kijken naar de 2de “<h2” in de post, en plakken de code voor de advertentie daar net voor.
Je kunt dit uiteraard aanpassen naar eigen smaak, bijvoorbeeld door de $ChapterCount waarde ter veranderen:

$ChapterCount = 2;

Een handige programmeur kan deze code overigens aanpassen voor het plaatsen van advertenties op meerdere plaatsen, of een poging doen om de advertentie echt in het midden te plaatsen (bijvoorbeeld door “count($content)” door 2 te delen).

Voor het plaatsen van meerdere advertenties, herhalen we het “if” statement in de “for” loop naar behoefte.

Let wel op, dat als er minder dan twee “<h2″’s in de content zijn, dat dit voorbeeld dus GEEN advertentie plaatst.

PHP Code voor Advertenties injectie in Posts

Gebruik onderstaande naar eigen wense …

Het voegt een “the_content” filter toe om automatisch een advertentie, on the fly, te plaatsen in een post, net voor de tweede <H2> tag.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function t4a_insert_ad_in_content($content)
{
    if ((!is_singular('post')) || (strpos($content, '<h2') === FALSE) ) {  return $content; }

    $ChapterCount = 2; // getelde hoofdstukken
    $content = explode("<h2", $content);

    $new_content = '';
   
    for ($i = 0; $i < count($content); $i++) {
        if ($i == $ChapterCount) {
            $new_content .= 'plaats jouw advertentie code hier';
        }
       
        if($i>0) {
          $new_content.= "<h2".$content[$i];
        } else {
          $new_content.= $content[$i];
        }
    }
   
    return $new_content;
}
add_filter('the_content', 't4a_insert_ad_in_content');

 

Google AdSense gedachten

Omdat ik Google Adsense gebruik, mag ik maar 3 advertenties per pagina plaatsen.

Om er dus voor te zorgen dat ik er niet te veel plaats, heb ik een global variable ($GLOBALS['AddCounter'] ) gebruikt en een functie gemaakt voor het genereren van Adsense code.

In deze functie kijk ik eerst of $GLOBALS['AddCounter'] al bestaat.
Bestaat deze nog niet, dan maak ik deze aan en zet de begin waarde op “1”.
Mocht deze al bestaan, dan verhoog ik de waarde daarvan met “1”.

Als de waarde groter dan 3 wordt (maximum voor Google Adsense) dan zal de functie niks doen en dus ook niks terug sturen. In alle andere gevallen stuurt het de code van een Google Ad terug. Handig als je per ongeluk deze functie te vaak aanroept.


1
2
3
4
5
6
7
8
9
10
11
12
function t4a_generate_google_ad_code() {
...
if (!isset($GLOBALS['AddCounter'])) {
  $GLOBALS['AddCounter']=1;
} else {
  $GLOBALS['AddCounter']=$GLOBALS['AddCounter']+1;
}

if ($GLOBALS['AddCounter']>3) { return; }
... // genereren van de advertentie code gebeurt hier
return $adcode;
}

Als je deze functie zou gebruiken, dan zou de code voor de injectie van de advertentie er zo uit kunnen zien:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function t4a_insert_ad_in_content($content)
{
    if ((!is_singular('post')) || (strpos($content, '<h2') === FALSE) ) {  return $content; }

    $ChapterCount = 2; // aantal hoofdstukken geteld

    $content = explode("<h2", $content);

    $new_content = '';
   
    for ($i = 0; $i < count($content); $i++) {
        if ($i == $ChapterCount) {
            $new_content .= t4a_generate_google_ad_code; // aanroep functie voor advertentie code genereren
        }
       
        if($i>0) {
          $new_content.= "<h2".$content[$i];
        } else {
          $new_content.= $content[$i];
        }
    }
   
    return $new_content;
}
add_filter('the_content', 't4a_insert_ad_in_content');

In mijn situatie werkt dit prima.

Ik wil een advertentie voor en na de post.

Ik wil ook een advertentie voor de tweede <h2>, maar bij korte artikelen kan dit falen en geen advertentie plaatsen, met name als er minder dan 2 <h2> tags zijn.

En als laatste wil ik een advertentie voor het opmerkingen formulier.

Dus er zouden potentieel 4 advertenties kunnen verschijnen, wat dus niet mag.

De functie en de teller vangen dit netjes op.
Als injecteren faalde, dan is de advertentie bij het opmerkingen formulier de derde aanroep van deze functie en een advertentie wordt dus gegenereerd.

Mocht injecteren toch hebben gewerkt, dan zou het plaatsen van een advertentie bij het opmerkingen formulier, de 4de aanroep zijn en de functie zou dan geen advertentie code terug sturen.

Donatie Opties


Donaties worden zeer gewaardeerd, maar zijn zeker niet vereist. Donaties worden gebruikt voor het dekken van kosten voor web-hosting en project materialen, en eventueel voor een drankje of een snack. Voor wie al gedoneerd heeft: Hartelijk dank! Het is werkelijk geweldig om te zien dat men onze artikelen en applicaties waardeert.

Reacties


Er zijn nog geen reacties geplaatst.
Je kunt jouw eigen opmerkingen plaatsen m.b.v. dit formulier, of een reactie op een opmerking plaatsen door op de "Reageer" knop te klikken.



Jouw Reactie ...

Vriendelijk verzoek om hier geen lange teksten te plaatsen (zoals source codes, log files of config files). Gebruik daarvoor het Forum.

Deel met anderen:
*
*
Houd me op de hoogte van nieuwe reacties (email).
       Gebruik jouw RSS reader om reacties te volgen.


Tweaking4All gebruikt de gratis Gravatar dienst voor Avatars.
Tweaking4All zal nooit jouw email adres met anderen delen.