wp-includes/interactivity-api/class-wp-interactivity-api.php:769Parse the directive name to extract the following parts: - Prefix: The main directive name without "data-wp-".
$directive_namestringarray private function parse_directive_name( string $directive_name ): ?array { // Remove the first 8 characters (assumes "data-wp-" prefix) $name = substr( $directive_name, 8 ); // Check for invalid characters (anything not a-z, 0-9, -, or _) if ( preg_match( '/[^a-z0-9\-_]/i', $name ) ) { return null; } // Find the first occurrence of '--' to separate the prefix $suffix_index = strpos( $name, '--' ); if ( false === $suffix_index ) { return array( 'prefix' => $name, 'suffix' => null, 'unique_id' => null, ); } $prefix = substr( $name, 0, $suffix_index ); $remaining = substr( $name, $suffix_index ); // If remaining starts with '---' but not '----', it's a unique_id if ( '---' === substr( $remaining, 0, 3 ) && '-' !== ( $remaining[3] ?? '' ) ) { return array( 'prefix' => $prefix, 'suffix' => null, 'unique_id' => '---' !== $remaining ? substr( $remaining, 3 ) : null, ); } // Otherwise, remove the first two dashes for a potential suffix $suffix = substr( $remaining, 2 ); // Look for '---' in the suffix for a unique_id $unique_id_index = strpos( $suffix, '---' ); if ( false !== $unique_id_index && '-' !== ( $suffix[ $unique_id_index + 3 ] ?? '' ) ) { $unique_id = substr( $suffix, $unique_id_index + 3 ); $suffix = substr( $suffix, 0, $unique_id_index ); return array( 'prefix' => $prefix, 'suffix' => empty( $suffix ) ? null : $suffix, 'unique_id' => empty( $unique_id ) ? null : $unique_id, ); } return array( 'prefix' => $prefix, 'suffix' => empty( $suffix ) ? null : $suffix, 'unique_id' => null, ); }Introduced in 6.9.0. One change between 6.9.7 and 7.1.0.
Signature, return type and hooks compared across 3 parsed releases.
array to array|null.verified against sourcesrc/wp-includes/interactivity-api/class-wp-interactivity-api.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.