* * @return mixed */ static function extract_prefixed_args($prefixed_args, $prefixes, $args = array()) { $extracted_args = array(); $args = wp_parse_args($args, array('strip_prefix' => true)); if (is_string($original = $prefixes)) { $prefixes = array($prefixes => $prefixes); } if (is_array($prefixes) && count($prefixes)) { $extracted_args = array_fill_keys(array_keys($prefixes), array()); $match_regex = '#^(' . implode('|', $prefixes) . ')_(.*)$#'; foreach ($prefixed_args as $arg_name => $arg_value) { if (preg_match($match_regex, $arg_name, $match)) { if ($args['strip_prefix'] || 2 <= substr_count($arg_name, '_')) { $extracted_args[$match[1]][$match[2]] = $arg_value; } else { $extracted_args[$match[1]][$arg_name] = $arg_value; } } } } return is_string($original) ? $extracted_args[$original] : $extracted_args; } static function strip_arg_prefixes($prefixed_args, $prefixes) { } } WP_Metadata::on_load();