post_type === 'event' ) { * return new My_Event_Transformer( $object ); * } * return $transformer; * }, 10, 3 ); * * @param null|Base $transformer The transformer to use. Default null. * @param mixed $data The object to transform. * @param string $object_class The class of the object to transform. * * @return mixed The transformer to use. */ $transformer = \apply_filters( 'activitypub_transformer', null, $data, $class ); if ( $transformer ) { if ( ! \is_object( $transformer ) || ! $transformer instanceof Base ) { return new \WP_Error( 'invalid_transformer', \__( 'Invalid transformer', 'activitypub' ) ); } return $transformer; } // Use default transformer. switch ( $class ) { case 'WP_Post': if ( 'attachment' === $data->post_type && ! is_post_disabled( $data ) ) { return new Attachment( $data ); } elseif ( ! is_post_disabled( $data ) && get_user_id( $data->post_author ) ) { return new Post( $data ); } break; case 'WP_Comment': if ( Comment_Helper::should_be_federated( $data ) ) { return new Comment( $data ); } break; case 'WP_User': if ( user_can_activitypub( $data->ID ) ) { return new User( $data ); } break; case 'WP_Term': return new Term( $data ); case 'json': return new Json( $data ); } if ( $data instanceof Base_Object ) { return new Activity_Object( $data ); } return new \WP_Error( 'invalid_object', \__( 'Invalid object', 'activitypub' ) ); } }