﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
22934	Notice thrown on recent comment widget for comments on custom post type	firebird75		"If a plugin creates a custom post type and some comments are posted for the custom post, then once the plugin is deactivated, this will generate a lot of notices in the recent comments widget on the dashboard :
""Notice: Trying to get property of non-object in /homepages/wp-includes/capabilities.php on line 1123
 
Notice: Trying to get property of non-object in /homepages/wp-includes/capabilities.php on line 1124
 
Notice: Trying to get property of non-object in /homepages/wp-includes/capabilities.php on line 1124
 
Notice: Trying to get property of non-object in /homepages/wp-includes/capabilities.php on line 1127
 
Notice: Trying to get property of non-object in /homepages/wp-includes/capabilities.php on line 1127""

Some robustness is required there :
 {{{
		if ( ! $post_type->map_meta_cap ) {
			$caps[] = $post_type->cap->$cap;
			// Prior to 3.1 we would re-call map_meta_cap here.
			if ( 'read_post' == $cap )
				$cap = $post_type->cap->$cap;
			break;
		}

                $status_obj = get_post_status_object( $post->post_status );
		if ( $status_obj->public ) {
			$caps[] = $post_type->cap->read;
			break;
		}
}}}

Suggested fix :
{{{
		if ( is_object($post_type) && ! $post_type->map_meta_cap ) {
			$caps[] = $post_type->cap->$cap;
			// Prior to 3.1 we would re-call map_meta_cap here.
			if ( 'read_post' == $cap )
				$cap = $post_type->cap->$cap;
			break;
		}

		$status_obj = get_post_status_object( $post->post_status );
		if ( $status_obj->public ) {
			if (is_object($post_type))
			$caps[] = $post_type->cap->read;
			break;
		}
}}}

Same on line 1181 :
{{{
case 'edit_comment':
		$comment = get_comment( $args[0] );
		$post = get_post( $comment->comment_post_ID );
		$post_type_object = get_post_type_object( $post->post_type );
		if (is_object($post_type_object)) // Test added here
		$caps = map_meta_cap( $post_type_object->cap->edit_post, $user_id, $post->ID );
		break;
}}}"	defect (bug)	closed	normal		Post Types	3.5	normal	duplicate		autremonde75@…
