get_post_types()返回null求助:自定义函数无法获取文章类型列表
问题解决方法
你的自定义函数存在两个核心问题:
- 缺少返回语句:函数内部创建了
$pt_list数组,但未通过return返回该数组,导致调用时返回null。 - 对返回类型的误解:仅传递
array( 'public' => true )参数时,get_post_types()默认返回文章类型的slug字符串数组,而非对象。直接用$pt->name访问会报错,无法获取标签内容。
修复后的函数代码:
function get_posttype_list() { $pt_list = []; // 第二个参数传'objects',让函数返回文章类型对象数组 $post_types = get_post_types( array( 'public' => true ), 'objects' ); foreach( $post_types as $pt ) { $pt_list[ $pt->name ] = $pt->labels->singular_name; } // 返回整理后的数组 return $pt_list; }
调用示例:
$post_types = get_posttype_list(); print_r($post_types);
执行后即可得到以slug为索引、单数名称为值的目标数组。
内容的提问来源于stack exchange,提问作者WPdev11
相关产品推荐
相关产品推荐

