我只知道我做这件事的方式很糟糕:
<?php } elseif ( is_single()) {
$url = wp_get_referer();
$path_parts = pathinfo($url);
$mycat = $path_parts['filename'];
if ( $mycat == "animation" ) {
$_SESSION["theCategory"] = $mycat;?>
<a href="<?php bloginfo('home')?>/category/<?php echo $_SESSION["theCategory"];?>"><?php echo $_SESSION["theCategory"];?></a>
<?php } elseif ($mycat == "direction"){
$_SESSION["theCategory"] = $mycat;?>
<a href="<?php bloginfo('home')?>/category/<?php echo $_SESSION["theCategory"];?>"><?php echo $_SESSION["theCategory"];?></a>
<?php } elseif ($mycat == "grading"){
$_SESSION["theCategory"] = $mycat;?>
<a href="<?php bloginfo('home')?>/category/<?php echo $_SESSION["theCategory"];?>"><?php echo $_SESSION["theCategory"];?></a>
<?php } elseif ($mycat == "online"){
$_SESSION["theCategory"] = $mycat;?>
<a href="<?php bloginfo('home')?>/category/<?php echo $_SESSION["theCategory"];?>"><?php echo $_SESSION["theCategory"];?></a>
<?php } elseif ($mycat == "showcase"){
$_SESSION["theCategory"] = $mycat;?>
<a href="<?php bloginfo('home')?>/category/<?php echo $_SESSION["theCategory"];?>"><?php echo $_SESSION["theCategory"];?></a>
<?php } elseif ($mycat == "showreel"){
$_SESSION["theCategory"] = $mycat;?>
<a href="<?php bloginfo('home')?>/category/<?php echo $_SESSION["theCategory"];?>"><?php echo $_SESSION["theCategory"];?></a>
<?php } elseif ($mycat == "vfx"){
$_SESSION["theCategory"] = $mycat;?>
<a href="<?php bloginfo('home')?>/category/<?php echo $_SESSION["theCategory"];?>"><?php echo $_SESSION["theCategory"];?></a>
<?php }else{ ?><a href="<?php bloginfo('home')?>/category/<?php echo $_SESSION["theCategory"];?>"><?php echo $_SESSION["theCategory"];?></a><?php };?>
<?php } //end if is_single ?>它起作用了。但它是混乱和重复的。我试着走这条路:
<?php if ($mycat == "animation" || "direction" || "grading"){但它根本不起作用。
发布于 2010-07-17 00:55:46
创建一个保存这些值的数组,然后测试数组中是否存在$mycat的值。此外,无论$mycat是什么,您都会回显链接,因此可以完全删除else语句,并将if结构进一步简化为以下内容:
$categories = array(
'animation',
'direction',
'grading',
'online',
'showcase',
'showreel',
'vfx'
);
if (in_array($mycat, $categories)) {
$_SESSION["theCategory"] = $mycat;
}
?>
<a href="<?php bloginfo('home')?>/category/<?php echo $_SESSION["theCategory"];?>"><?php echo $_SESSION["theCategory"];?></a>就像其他人所说的,记住避开你的输出。
发布于 2010-07-17 00:56:54
像这样的东西?
<?php
$cats = array(
'animation',
'direction',
'grading',
'online',
'showcase',
'showreel'
'vfx',
);
if ( in_array($mycat, $cats) ) :
$_SESSION['theCategory'] = $mycat; ?>
<a href="<?php bloginfo('home')?>/category/<?php echo $mycat;?>"><?php echo $mycat;?></a>
<?php else: ?>
<a href="<?php bloginfo('home')?>/category/<?php echo $_SESSION["theCategory"];?>"><?php echo $_SESSION["theCategory"];?></a>
<?php endif; ?>发布于 2010-07-17 01:01:45
并使用switch语句:
switch($mycat) {
case 'animation':
case 'direction':
case 'grading':
case 'online':
case 'showcase':
case 'showreel':
case 'vfx':
$_SESSION["theCategory"] = $mycat;
default:
?>
<a href="<?php bloginfo('home')?>/category/<?php echo $_SESSION["theCategory"];?>"><?php echo $_SESSION["theCategory"];?></a>
<?php
}请注意case语句之后的详细说明。你可以这样做,或者:
switch($mycat) {
case 'animation':
case 'direction':
case 'grading':
case 'online':
case 'showcase':
case 'showreel':
case 'vfx':
$_SESSION["theCategory"] = $mycat;
}
?>
<a href="<?php bloginfo('home')?>/category/<?php echo $_SESSION["theCategory"];?>"><?php echo $_SESSION["theCategory"];?></a>
<?phphttps://stackoverflow.com/questions/3267159
复制相似问题