返回带有与符号的类别名称不起作用(&A)

时间:2019-01-06 作者:JoaMika

我有一个类别名为:This & That

然而,出于某种奇怪的原因switch 代码无法识别它。当我输出时$firstcat 它确实会回来This & That 这使得它更加繁琐。

该代码适用于不包含符号和的其他类别;。

function posend_text_shortcode() {
  $mycategory = get_the_category();
  $firstcat = $mycategory[0]->name;
     switch($firstcat){
      case "This & That":
       include(get_stylesheet_directory() . \'/inc/style/check.php\');
      break;
   default:
       include(get_stylesheet_directory() . \'/inc/style/default.php\'); 
    break;
  }
}

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

在这样的比较中使用标题总是有点冒险——你必须处理编码等等。

更安全的方法是在代码中使用段塞,因为它们是url安全的。

因此,您的代码可能如下所示:

function posend_text_shortcode() {
  $mycategory = get_the_category();

  $slug = \'\';
  if ( ! empty($mycategory) ) {  // you have to check, if any category is assigned
      $slug = $mycategory[0]->slug;
  }

  switch($slug){
      case \'this-that\': // change to real slug
          get_template_part(\'/inc/style/check.php\'); // you should use get_template_part instead of including template parts
          break;

      default:
          get_template_part(\'/inc/style/default.php\'); 
          break;
  }
}