我有一个类别名为: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;
}
}发布于 2019-01-06 20:32:32
在这样的比较中使用标题总是有点冒险--你必须处理编码等等。
更安全的方法是在代码中使用子弹,因为它们是安全的.
因此,您的代码可能如下所示:
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;
}
}https://wordpress.stackexchange.com/questions/324823
复制相似问题