$args Import context. * @return array */ public static function build( array $args ): array { $metadata = isset( $args['metadata'] ) && is_array( $args['metadata'] ) ? $args['metadata'] : array(); $source = sanitize_key( (string) ( $args['source'] ?? '' ) ); $folder_alias = self::folder_alias( $source, $metadata ); $package_ref = self::package_ref( $source, $metadata ); return array( 'source' => $source, 'post_id' => isset( $args['post_id'] ) ? (int) $args['post_id'] : 0, 'post_type' => sanitize_key( (string) ( $args['post_type'] ?? 'post' ) ) ?: 'post', 'imported_at' => (string) ( $args['imported_at'] ?? '' ), 'incoming_path' => self::incoming_path( $source, $metadata, $folder_alias ), 'published_path' => self::published_path( $source, $metadata, $folder_alias ), 'folder_alias' => $folder_alias, 'site_alias' => sanitize_title( (string) ( $args['site_alias'] ?? '' ) ), 'package_ref' => $package_ref, 'document_id' => isset( $args['document_id'] ) ? (int) $args['document_id'] : null, 'file_id' => (string) ( $args['file_id'] ?? '' ), 'mode' => sanitize_key( (string) ( $args['mode'] ?? 'create' ) ) ?: 'create', 'summary' => self::summarize_post( isset( $args['post_id'] ) ? (int) $args['post_id'] : 0, $metadata ), ); } /** * Snapshot of the created/updated post: status, chars, images, taxonomies. * * @param array $metadata Scan metadata. * @return array */ public static function summarize_post( int $post_id, array $metadata = array() ): array { if ( $post_id <= 0 || ! function_exists( 'get_post' ) ) { return array(); } $post = get_post( $post_id ); if ( ! $post ) { return array(); } $content = (string) $post->post_content; $text = function_exists( 'wp_strip_all_tags' ) ? wp_strip_all_tags( $content ) : strip_tags( $content ); $chars = function_exists( 'mb_strlen' ) ? mb_strlen( $text ) : strlen( $text ); $images = preg_match_all( '/