RGB*_*GBK 0 php formatting if-statement
我只知道我这样做的方式很糟糕:
<?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 ?>
Run Code Online (Sandbox Code Playgroud)
有用.但它是混乱和重复的.我尝试过这条路线:
<?php if ($mycat == "animation" || "direction" || "grading"){
Run Code Online (Sandbox Code Playgroud)
但它根本不起作用.
创建一个包含值的数组,然后测试数组中是否$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>
Run Code Online (Sandbox Code Playgroud)
和其他人一样说,记得要逃避你的输出.
像这样的东西?
<?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; ?>
Run Code Online (Sandbox Code Playgroud)