WP_CLI
Runner::back_compat_conversions() │ private static │ WP-CLI 1.0
Transparently convert deprecated syntaxes
Method of the class: Runner{}
No Hooks.
Return
Array
.
Usage
$result = Runner::back_compat_conversions( $args, $assoc_args );
- $args(array) (required)
- -
- $assoc_args(array) (required)
- -
Runner::back_compat_conversions() Runner::back compat conversions code WP-CLI 2.8.0-alpha
private static function back_compat_conversions( $args, $assoc_args ) { $top_level_aliases = [ 'sql' => 'db', 'blog' => 'site', ]; if ( count( $args ) > 0 ) { foreach ( $top_level_aliases as $old => $new ) { if ( $old === $args[0] ) { $args[0] = $new; break; } } } // *-meta -> * meta if ( ! empty( $args ) && preg_match( '/(post|comment|user|network)-meta/', $args[0], $matches ) ) { array_shift( $args ); array_unshift( $args, 'meta' ); array_unshift( $args, $matches[1] ); } // cli aliases -> cli alias list if ( [ 'cli', 'aliases' ] === array_slice( $args, 0, 2 ) ) { list( $args[0], $args[1], $args[2] ) = [ 'cli', 'alias', 'list' ]; } // core (multsite-)install --admin_name= -> --admin_user= if ( count( $args ) > 0 && 'core' === $args[0] && isset( $assoc_args['admin_name'] ) ) { $assoc_args['admin_user'] = $assoc_args['admin_name']; unset( $assoc_args['admin_name'] ); } // core config -> config create if ( [ 'core', 'config' ] === array_slice( $args, 0, 2 ) ) { list( $args[0], $args[1] ) = [ 'config', 'create' ]; } // core language -> language core if ( [ 'core', 'language' ] === array_slice( $args, 0, 2 ) ) { list( $args[0], $args[1] ) = [ 'language', 'core' ]; } // checksum core -> core verify-checksums if ( [ 'checksum', 'core' ] === array_slice( $args, 0, 2 ) ) { list( $args[0], $args[1] ) = [ 'core', 'verify-checksums' ]; } // checksum plugin -> plugin verify-checksums if ( [ 'checksum', 'plugin' ] === array_slice( $args, 0, 2 ) ) { list( $args[0], $args[1] ) = [ 'plugin', 'verify-checksums' ]; } // site create --site_id= -> site create --network_id= if ( count( $args ) >= 2 && 'site' === $args[0] && 'create' === $args[1] && isset( $assoc_args['site_id'] ) ) { $assoc_args['network_id'] = $assoc_args['site_id']; unset( $assoc_args['site_id'] ); } // {plugin|theme} update-all -> {plugin|theme} update --all if ( count( $args ) > 1 && in_array( $args[0], [ 'plugin', 'theme' ], true ) && 'update-all' === $args[1] ) { $args[1] = 'update'; $assoc_args['all'] = true; } // transient delete-expired -> transient delete --expired if ( count( $args ) > 1 && 'transient' === $args[0] && 'delete-expired' === $args[1] ) { $args[1] = 'delete'; $assoc_args['expired'] = true; } // transient delete-all -> transient delete --all if ( count( $args ) > 1 && 'transient' === $args[0] && 'delete-all' === $args[1] ) { $args[1] = 'delete'; $assoc_args['all'] = true; } // plugin scaffold -> scaffold plugin if ( [ 'plugin', 'scaffold' ] === array_slice( $args, 0, 2 ) ) { list( $args[0], $args[1] ) = [ $args[1], $args[0] ]; } // foo --help -> help foo if ( isset( $assoc_args['help'] ) ) { array_unshift( $args, 'help' ); unset( $assoc_args['help'] ); } // {post|user} list --ids -> {post|user} list --format=ids if ( count( $args ) > 1 && in_array( $args[0], [ 'post', 'user' ], true ) && 'list' === $args[1] && isset( $assoc_args['ids'] ) ) { $assoc_args['format'] = 'ids'; unset( $assoc_args['ids'] ); } // --json -> --format=json if ( isset( $assoc_args['json'] ) ) { $assoc_args['format'] = 'json'; unset( $assoc_args['json'] ); } // --{version|info} -> cli {version|info} if ( empty( $args ) ) { $special_flags = [ 'version', 'info' ]; foreach ( $special_flags as $key ) { if ( isset( $assoc_args[ $key ] ) ) { $args = [ 'cli', $key ]; unset( $assoc_args[ $key ] ); break; } } } // (post|comment|site|term) url --> (post|comment|site|term) list --*__in --field=url if ( count( $args ) >= 2 && in_array( $args[0], [ 'post', 'comment', 'site', 'term' ], true ) && 'url' === $args[1] ) { switch ( $args[0] ) { case 'post': $post_ids = array_slice( $args, 2 ); $args = [ 'post', 'list' ]; $assoc_args['post__in'] = implode( ',', $post_ids ); $assoc_args['post_type'] = 'any'; $assoc_args['orderby'] = 'post__in'; $assoc_args['field'] = 'url'; break; case 'comment': $comment_ids = array_slice( $args, 2 ); $args = [ 'comment', 'list' ]; $assoc_args['comment__in'] = implode( ',', $comment_ids ); $assoc_args['orderby'] = 'comment__in'; $assoc_args['field'] = 'url'; break; case 'site': $site_ids = array_slice( $args, 2 ); $args = [ 'site', 'list' ]; $assoc_args['site__in'] = implode( ',', $site_ids ); $assoc_args['field'] = 'url'; break; case 'term': $taxonomy = ''; if ( isset( $args[2] ) ) { $taxonomy = $args[2]; } $term_ids = array_slice( $args, 3 ); $args = [ 'term', 'list', $taxonomy ]; $assoc_args['include'] = implode( ',', $term_ids ); $assoc_args['orderby'] = 'include'; $assoc_args['field'] = 'url'; break; } } // config get --[global|constant]=<global|constant> --> config get <name> --type=constant|variable // config get --> config list if ( count( $args ) === 2 && 'config' === $args[0] && 'get' === $args[1] ) { if ( isset( $assoc_args['global'] ) ) { $name = $assoc_args['global']; $type = 'variable'; unset( $assoc_args['global'] ); } elseif ( isset( $assoc_args['constant'] ) ) { $name = $assoc_args['constant']; $type = 'constant'; unset( $assoc_args['constant'] ); } if ( ! empty( $name ) && ! empty( $type ) ) { $args[] = $name; $assoc_args['type'] = $type; } else { // We had a 'config get' without a '<name>', so assume 'list' was wanted. $args[1] = 'list'; } } return [ $args, $assoc_args ]; }