Aquitain
Invité n'ayant pas de compte PHPfrance
17 août 2009, 10:08
Ah oui, Calimero, je ne pensais pas que la solution pouvait t'intéresser, car c'est du bricolage !
En fait, j'avais mal posé le problème... Je ne pouvais demander à Php de vérifier et d'appliquer la condition en même temps. Donc j'opère en deux étapes... "Si ma condition est respectée, alors..."
En gros, avec WordPress qui est la solution que j'utilise, la syntaxe générique est, par exemple,
if is_home() pour provoquer l'affichage d'un gadget sur la page d'accueil d'un site. A l'identique, on peut gérer un gadget pour un article particulier avec un santaxe comme
if is_single('17') pour afficher un gadget sur l'article n°17...
Moi, je voulais automatiser le processus, avec ma fameuse condition.
Comment un bout de code sera plus explicite, je l'indique :
Code : Tout sélectionner
$template = $instance['template']; // Je récupère la valeur de template qui est dans liste déroulante prévoyant le plupart des cas possibles
$id = $instance['id']; // Je récupère la valeur qui sert éventuellement à préciser le numéro d'article ou de page
switch ($template)
{
case 'home':
if (is_home())
{
echo $before_widget;
if ($title)
{
echo $before_title . $title . $after_title;
}
?>
<ul>
<li>
<?php echo $instance['filter'] ? wpautop($text) : $text; ?>
</li>
</ul>
<?php
echo $after_widget;
}
break;
case 'front_page':
if (is_front_page()) // Je ne reprécise pas le code, c'est le même ! Ainsi de suite... En fait, c'est un code "standard" WordPress
{
}
break;
case 'admin':
if (is_admin())
{
}
break;
case 'single':
if (is_single($id)) // id, car on peut vouloir préciser le numéro de single...
{
}
break;
case 'sticky':
if (is_sticky($id))
{
}
break;
case 'page':
if (is_page($id))
{
}
break;
case 'author':
if (is_author($id))
{
}
break;
case 'archive':
if (is_archive())
{
}
break;
case 'search':
if (is_search())
{
}
break;
case '404':
if (is_404())
{
}
break;
case 'singular':
if (is_singular())
{
}
break;
default:
}
?>
Voilà ! Je ne dis pas que ma solution est la meilleure (dompter Php me semble difficile), mais elle fonctionne.
Ceci posé, je suis à l'écoute de vos suggestions et critiques. Merci.
A plus tard,
Aquitain