我创建了一个返回Custom Post类型分类数组的函数:
function arfolio_get_cpt_tax(){
$categories = get_terms( 'service_categories' );
$cat_array = array();
foreach( $categories as $cat ){
$cat_array[$cat->term_id] = $cat->name;
}
return $cat_array;
}
我在page.php中调用此函数。它工作正常。但是当我调用这个函数时,另一个文件包含在functions.php中它让我犯了错误:
Notice: Trying to get property of non-object in wordpress\wp-content\themes\arfolio-wp\inc\cpt.php on line 127
请帮我解决此错误。
第127行是上述功能:
$cat_array[$cat->term_id] = $cat->name;
由于
答案 0 :(得分:1)
检查$categories
是否为对象数组,以显示它,输入以下代码:
function arfolio_get_cpt_tax(){
$categories = get_terms( 'service_categories' );
// See the var
var_dump($categories); die();
$cat_array = array();
foreach( $categories as $cat ){
$cat_array[$cat->term_id] = $cat->name;
}
return $cat_array;
}
它应该显示一个对象数组,如果没有,检查函数的答案是什么,可能是一个数组数组,你应该使用类似的东西:
function arfolio_get_cpt_tax(){
$categories = get_terms( 'service_categories' );
$cat_array = array();
foreach( $categories as $cat ){
$cat_array[ $cat['term_id'] ] = $cat['name'];
}
return $cat_array;
}
答案 1 :(得分:0)
get_terms
返回WP_Error
对象如果没有成功请执行
var_dump($categories); die();
并检查错误 它可能是这样的
object(WP_Error)[196]
public 'errors' =>
array (size=1)
'invalid_taxonomy' =>
array (size=1)
0 => string 'Invalid taxonomy' (length=16)
public 'error_data' =>
array (size=0)
empty
如果是,请检查您的分类是否存在
修改强>
这是在分类登记之前发生的术语提取的情况。
请检查您在注册分类后调用您的功能 例如,检查您是否包含在分类法注册后包含调用该函数的文件
我假设您在init操作中注册了您的分类,并且在包含functions.php之后实际调用了init操作,因此在functions.php中调用您的函数将不起作用 所以你需要在模板或模板部件中使用这个功能