鉴于以下类别:
_Hello
_1979
我正在运行:
$option = " ";
$categories = get_categories( array( 'hide_empty' => 0 ) );
foreach ( $categories as $category ) {
// Since string indexing is zero-based, we want to check if
// the first char is an underscore and
// the second character is a digit
if( $category[0] === '_' && ctype_digit( $category[1] ) ) {
// chop off the leading underscore
$category = substr( $category, 1 );
} else {
$option .= '<option>'.$category->name.'</option>';
}
}
return $option;
但它返回:
不能使用WP_Term类型的对象作为数组
首先,我首先检查Category
是否有underscore
,如果是,我会检查它是以string
还是number
开头。如果它是string
,那么我输出<option>
答案 0 :(得分:1)
$categories
包含一组对象(类型为WP_Term的对象)而不是一个数组,假设该对象包含一个属性名称,您可以将其作为
$category->name
和
if( $category->name[0] === '_' && ctype_digit( $category->name[1] ) )
答案 1 :(得分:1)
$category
是一个对象,而不是字符串,因此您无法检查它的第一个字符。你也不能按照下一行来获取它的子串。
对于您尝试将$category->name
作为字符串引用的所有实例,您可能需要考虑的是$category
。
if( $category->name[0] === '_' && ctype_digit( $category->name[1] ) ) {
// chop off the leading underscore
$category->name = substr( $category->name, 1 );