Een regel tekst boven of onder een blogpost plaatsen

Een regel tekst boven of onder een blogpost plaatsen

Een standaard regel (of) blok tekst boven of onder je blogpost plaatsen valt eigenlijk best wel mee.

Het is niet geheel ondenkbaar, zelfs behoorlijk waarschijnlijk, dat je vroeg of laat een standaard regel tekst, afbeeldingen of knoppen onder of boven aan je blogpost wilt plaatsen. In dit voorbeeld doen we dit met een regel tekst, maar we kunnen het eigenlijk met iedere vorm van HTML doen. Denk hierbij bijvoorbeeld aan een standaard banner (voor jouw product) boven iedere blogpost, of een standaard tekst onderaan.

Wanneer je een theme builder als Elementor Pro gebruikt kan je dat natuurlijk makkelijker en heel flexibel doen, maar ook wanneer je met ‘traditionele’ WordPress thema’s werkt, is dit goed mogelijk. En dat zonder enige plugin te installeren.

Tekst boven de blogpost plaatsen

Laten we beginnen met een voorbeeld hoe we tekst boven een blogpost kunnen plaatsen.

<?php
add_filter(‘the_content’, ‘wxp_add_content_before’);

function wxp_add_content_before($content) {

   $my_custom_text = ‘<div class="wxp-custom-top">This is the text to show!</div>’;

   if(is_single() && !is_home()) {
     if ('post' == get_post_type()) {  
        $content = $my_custom_text . $content;
     }
   }
   return $content;
}

Ik heb hier de tekst die ik wil plaatsen tussen <div> tags gezet. Want hoogstwaarschijnlijk zal ik controle willen hebben over de opmaak van die tekst en dank zij de ‘div’ tags, kan ik deze tekst direct identificeren.

Regel 10 verdient misschien wat extra aandacht.

Zoals je in regel 4 hebt kunnen zien, krijgt de functie wxp_add_content_before() een parameter mee met de naam $content.

Deze $content bevat -het zal je niet verbazen- de content van de blogpost. Hier wil je een regel aan het begin van deze content toevoegen. In PHP heeft de punt (.) de rol van de ‘concatenatie operator’, ofwel, de operator die series tekens aan elkaar plakt. In veel talen wordt dit door het + teken gedaan, maar in PHP dus niet.

Prioriteiten

Wanneer je meerdere plugins actief hebt die ‘iets’ met de content van je blogposts doen, dan kan het gebeuren dat de door jou ingevoegde zin niet op de door jou gewenste plaatst staat. Dat komt omdat meerdere functies aangeroepen kunnen worden door de ‘the_content’ filter hook. Om enigzins controle te hebben over de volgorde waarin dit gebeurt, kan je aan een ‘add_filter’ of ‘add_action’ functie ook een prioriteit meegeven.

Zo’n prioriteit is een getal, waarbij lagere getallen eerst, en hogere getallen als laatste uitgevoerd zullen worden.

Het is een soort van ‘afspraak’ voor plugin bouwers, dat we deze prioriteiten in stapjes van 10 op laten lopen. Dus 10 betekent ‘als eerste’, en een heel hoog getal ‘als laatste’.

Wanneer ik dus de tekst helemaal aan het begin van de content wil hebben, dan zou mijn ‘add_filter’ er als volgt uit kunnen zien (dit vervangt dus de code in regel 2)

add_filter(‘the_content’, ‘wxp_add_content_before’,9);

Wil ik de tekst als laatste boven de content hebben, dan voeg ik de volgende regel in :

add_filter(‘the_content’, ‘wxp_add_content_before’,999999);

Maar wat nu, wanneer ik mijn extra tekst onderaan wil hebben?

Tekst onder de blogpost plaatsen

<?php
add_filter(‘the_content’, ‘wxp_add_content_before’);

function wxp_add_content_before($content) {

   $my_custom_text = ‘<div class="wxp-custom-bottom">This is the text to show!</div>’;

   if(is_single() && !is_home()) {
     if ('post' == get_post_type()) {  
        $content .= $my_custom_text;
     }
   }
   return $content;
}

Het enige wat hier is veranderd is regel 10. Maa die regel 10 ziet er nu wel ineens heel vreemd uit. Hoe moet ik dit lezen?

Ik had regel 10 ook op een andere manier kunnen schrijven.

$content = $content . $my_custom_text;

Ok, dat ziet er weer logisch uit. Je voegt dus $my_custom_text toe aan $content.

Maar omdat programmeurs van nature lui zijn (ze proberen repeterende taken zo efficient mogelijk uit te voeren), tikken ze liever geen teken te veel in. En .= betekent dus eigenlijk ‘voeg de tekst achter de operator toe aan de tekst die in de variabele voor de operator staat’.

Ook met rekenkundige bewerkingen kunnen PHP programmeurs geweldig lui zijn. Wil ik 4 bij x optellen, dan schrijf ik gewoon

$x += 4;

Dat is dus hetzelfde als

$x = $x + 4;

of nog luier, 1 optellen bij $x

$x++;

Dat is weer hetzelfde als

$x = $x + 1;

En behalve een nuttige code snippet heb je nu ook iets meer inzicht gekregen in de programmeertaal PHP.

WordPress Developer worden?

Wil je leren hoe je zelf plugins, thema's, shortcodes, widgets, Gutenberg blocks en meer kan maken?
Schrijf je dan in voor de cursus WordPress Developer.

Meer snippets

Pagina redirecten naar aanleiding van een user role
Met deze code kan je afhankelijk van de gebruikersrol waarmee wordt ingelogd je gebruikers naar de juiste...
De WordPress 'admin bar' ook daadwerkelijk alleen voor admins
Zelf vind ik de WordPress ‘admin bar’ heel handig om snel toegang te krijgen tot verschillende...
Een veld toevoegen in WooCommerce bestellingen
Hoe voeg je extra velden toe aan je WooCommerce checkout procedure?
Laat zien wanneer een product al in de winkelwagen is
Laat je klant zien, dat een product al in de winkelwagen is geplaatst.
De geschatte leestijd voor je content tonen
Laat de geschatte tijd voor een blogposts zien op diverse manieren.
De webwinkel is op zondag gesloten
Het voordeel van een webshop is dat hij 24/7 open is. Maar wat nu, wanneer je op zon- en feestdagen principieel...

Veiligheid voor alles!

Met betrekking tot de code die je hier aantreft een aantal waarschuwingen, voordat je deze code snippets toepast op je eigen website.

  1. Voer de code nooit direct uit op je eigen website, maar probeer deze eerst op een staging omgeving of een locale kopie van je website. 
  2. Voor je de geteste code installeert op je website, maak eerst een back up van je website.
  3. Zorg altijd voor alle zekerheid, dat je voor je een aanpassing live zet, je ook de FTP gegevens van je website bij de hand hebt.  
 
Voel je je onvoldoende vertrouwd met het toepassen van een dergelijke code snippet, bedenk dat je dit ook door een professional kan laten doen. De WordXPression support strippenkaart is een voordelige manier om dit soort aanpassingen te laten doen.
Heeft dit artikel je geholpen je probleem op te lossen?
Deel het met je vrienden via je favoriete social media.

Heb je vragen bij, of opmerkingen over deze code snippet, stel deze bij de commentaren hieronder.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Word je website de baas. Neem vandaag nog contact op!

Contact Information

WordXPression 
Imkersdreef 525
7328DG Apeldoorn
06-10449807 (van 9:00 tot 17:00 van ma-vr)

KVK : 75580152 

Social media
Stuur een bericht