Wordpress <?php if (has_tag

Yel Nats

Legendäres Mitglied
Hallo,

ich habe gerade nen Denkfehler bei Wordpress. Folgendes soll erreicht werden:

wenn der Artikel mit Frühling getaggt wird soll das Wort "Frühling" dastehen,
beim Tag Sommer das Wort "Sommer", wenn ein anderer Tag angegeben wurde soll da stehen "keine Jahreszeit".

Wie realisiere ich das?

<?php if (has_tag('frühling') ) { ?>
frühling
<?php } ?>

<?php if (has_tag('sommer') ) { ?>
sommer
<?php } ?>

geht schon mal, aber dann komm ich nicht weiter!

Gruß,

Stanley

 
CODE
if ()
{
...
}
elseif ()
{
...
}
else
{
...
}



^^ sollte besser passen. Du kannst auch switch() nehmen und alles, was nicht passt, unter "default" ausgeben.
 
Das hab ich acuh schon probiert... komme aber mit den Tag-Anweisungen nicht zurecht!?
Kannst du mir das mal zusammenstricken wie im Beispiel oben?

Danke dir!
 
<?php if (has_tag('frühling') ) {
echo "frühling";
elseif (has_tag('sommer') ) {
echo "sommer";
}else{
echo "was auch immer";
}

bitte aber der 4-5 abfrage würde ich es mit einer switch-anweisung machen
smile.gif
 
Hallo,

mhh, da es so an die 15 Abfragen werden würd ich gleich die switch Anweisung nehmen wollen.
Aber wie geht das?

Yel Nats
 
has_tag() liefert ja nur TRUE oder FALSE zurück. Da kommst Du mit switch() nicht weit.

Entweder if/elseif/else

oder den Tag ermitteln und dann switchen:CODE
$var = holeTagIrgendwoHer();

switch($var)
{
case 'frühling':
echo 'frühling';
break;
case 'sommer':
echo 'sommer';
break;
default:
echo 'hier ist nix';
break;
}

 
das ist noch besser.

CODE

$mytags = array();
$mytags['Frühling'] = 'Frühling';
$mytags['Sommer'] = 'Sommer';
...

if( isset( $mytags[$tag] ) ){
echo $tag;
}else{
echo 'hier ist nix';
}




ist viel kürzer.
 
QUOTE (ombiz @ Fr 17.04.2009, 21:47)das ist noch besser.


CODE [...]
$mytags['Frühling'] = 'Frühling';
[...]


ist viel kürzer.

Ansichtssache, ich könnte sowas nicht mit meinen Programmierstil vereinbaren: keine Sonderzeichen in Variablennamen. Und der Hashkey ist für mich Teil des Variablennamen.
 
QUOTE (Sascha Ahlers @ Sa 18.04.2009, 00:11)
QUOTE (ombiz @ Fr 17.04.2009, 21:47)das ist noch besser.


CODE [...]
$mytags['Frühling'] = 'Frühling';
[...]


ist viel kürzer.

Ansichtssache, ich könnte sowas nicht mit meinen Programmierstil vereinbaren: keine Sonderzeichen in Variablennamen. Und der Hashkey ist für mich Teil des Variablennamen.

sehe ich genau so
tongue.gif
.

->


CODE $Tags = array();
$Tags[] = 'Frühling';
$Tags[] = 'Sommer';

if(in_array($WordpressTag, $Tags))
{
print 'ja';
}
else
{
print 'nein';
}
 
*g* jetzt sind die Profis unter sich und ich versteh gar nichts mehr
sad.gif


Hat jemand ne "Lösung für Dummies"?

Gruß,

Yel Nats
 
QUOTE (Yel Nats @ Sa 18.04.2009, 11:32)*g* jetzt sind die Profis unter sich und ich versteh gar nichts mehr
sad.gif


Hat jemand ne "Lösung für Dummies"? [...]

Da ich nicht weiß, was genau die Funktion has_tag( string ) macht, würde ich sagen:


CODE <?php

if ( has_tag('frühling') )
{
echo 'frühling';
}
else if ( has_tag('sommer') )
{
echo 'sommer';
}

?>


Flips' Beispiel mag ja funktionieren, aber hier geht es ja um eine differenzierte Anzeige.


Wenn es unbedingt mit Switch sein soll, würde es wie folgt gehen (auch wenn ich es als unschön finde):

CODE <?php

switch ( true )
{
case has_tag('frühling'):
echo 'sommer';
break;
case has_tag('sommer'):
echo 'sommer';
break;
default: /* wenn benoetigt kann hier eine alternative stehen, wenn nichts zutrifft */
}

?>

Vorausgesetzt natürlich has_tag liefert den Wert True oder False zurück (siehe auch http://www.php.net/switch -> Kommentar Dimitri vom 12.12.2008 10:59).
 
Zurück
Oben