Pagina1 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.

Ondersteun ons ...


Jouw ondersteuning wordt zeer gewaardeerd, en hoeft zelfs niets te kosten. Bijvoorbeeld door links naar ons te delen op social media, of andere websites.

Andere vormen kunnen ook gratis zijn (b.v. shoppen op Amazon).
Alle opbrengsten worden gebruikt voor web-hosting kosten, project hardware en software, koffie, etc.

Hartelijk dank voor wie al heeft bijgedragen!
Het is altijd geweldig om te zien hoe men mijn artikeltjes en applicaties weet te waarderen.

Merk op dat het klikken op affiliate links een kleine commissie voor ons kunnen genereren - dit wordt zeer gewaardeerd.

Reacties


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



Jouw Opmerking ...

Plaats hier geen grote bestanden (zoals source codes, log files of config files). Gebruik hiervoor het Forum.

Delen:
*
*
Laat me per email weten als er nieuwe reacties zijn.
       Je kunt jouw RSS reader gebruiken om reacties te volgen.


Tweaking4All gebruikt de gratis Gravatar dienst voor Avatar weergave.