我有一个名称为“51m系列”的类别(id为135)。为什么此类别页面上的表达式is\\u category(51)为真?我认为根据Wordpress Codex. 是虫子吗?Wordpress 3.5.2
category.php 代码:
<?php get_header(); ?>
<?php
if (is_category(array(36, 63, 64, 65, 67))) {
get_template_part(\'category\', \'papers\');
} elseif (is_category(array(5, 62, 61, 23, 17, 151))) {
get_template_part(\'category\', \'icons\');
} elseif (is_category(array(25, 50, 51, 52, 53, 54, 55, 56, 58, 71))) {
echo is_category(51);
get_template_part(\'category\', \'gallery-machine\');
} else {
get_template_part(\'category\', \'gallery-frame\');
}
?>
<?php get_footer(); ?>
51m series live 您可能会看到1(
is_category(51)) 在页面的上。
最合适的回答,由SO网友:Chip Bennett 整理而成
我怀疑,出于某种原因name “51m系列”或slug 51m-series 是否匹配(或两者都匹配)is_category( 51 ).
这个is_category() 作用uses the PHP in_array() conditional 要与ID、slug和name匹配,请执行以下操作:
if ( in_array( $cat_obj->term_id, $category ) )
return true;
elseif ( in_array( $cat_obj->name, $category ) )
return true;
elseif ( in_array( $cat_obj->slug, $category ) )
return true;
The
in_array() conditional 似乎在以下情况下返回true
51 在名称/段塞中找到
51m series/
51m-series. 虽然名称和slug条件检查都应该区分大小写,但没有一个检查是严格的。所以整数
51 可能被评估为字符串
$cat_obj->name, 和匹配
51m Series (或反对
$cat_obj->slug, 和匹配
51m-series)
可能的解决方案:
使用不以数字开头的类别名称/段塞,明确查询类别段塞,而不是类别ID,这也可能是core需要执行strict 登记入住in_array(), 区分ID整数和名称/段塞字符串。