Keuze afbeelding afhankelijk maken van tag of URL in WordPress
Voor de site allesovervoeten.nl kreeg ik de vraag of het logo niet afhankelijk kan zijn van de inhoud van de berichten en pagina’s. Een algemeen- of een sportlogo. Mais bien sûr…
Dit kan op twee manier, met zo min mogelijk moeite voor de webredactie: door de tag “sport” aan elke betrefende pagina of bericht toe te voegen en door in de uri naar het woord “sport” te zoeken.
Twee logo’s:
- Podotherapie van der Kaa, het standaard logo (algemeen.jpg)
- Sportpodotherapie van der Kaa, het logo dat bij alle artikelen, pagina’s over sport moet komen te staan (sport.jpg).
In de header.php:
<?php rrwd_get_logo_by_tag() ?>
In functions.php:
function rrwd_get_logo_by_tag() {
global $post;
$sport = false;
$logo = "/pad_naar_logo/algemeen.jpg";
$alt = "Podotherapie";
if ( get_the_tags($post->ID) ){
foreach (get_the_tags($post->ID) as $tag) {
$tag_name = $tag->name;
$tag_name = strtolower($tag_name);
if ( $tag_name == "sport" ) $sport = true;
}
}
if ( strpos($_SERVER['REQUEST_URI'],"sport") !== false ) $sport = true;
if ( $sport ) {
$logo = "/pad_naar_logo/sport.jpg";
$alt = "Sportpodotherapie";
}
echo "<a href='/' title='voorpagina'><img src='".$logo."' id='logo' alt='".$alt."'></a>";
}
See it in action: Allesovervoeten.nl
En ja, de logo’s zijn niet scherp, work in progress…
Bronnen
- Kneedeep in code: Tags Outside The Loop In WordPress
- WordPress.org: Function Reference/get the tags

Ik heb het voor een klant op een andere manier gedaan (daar ging het om een ander logo voor elk onderdeel), met behulp van de body_class functie in WordPress heb ik via CSS de div waar het logo in moest komen steeds een andere background gegeven.
Groetjes,
Hiranthi
Hoi Hiranthi,
Dat is ook een handige manier. Dan hoef je alleen het stylesheet aan te passen als je een andere naam logo wilt
Groetjes,
Rian