Prints default Plupload arguments.
Source
/**
* Tests which editors are capable of supporting the request.
*
* @ignore
* @since 3.5.0
*
* @param array $args Optional. Array of arguments for choosing a capable editor. Default empty array.
* @return string|false Class name for the first editor that claims to support the request.
* False if no editor claims to support the request.
*/
function _wp_image_editor_choose( $args = array() ) {
require_once ABSPATH . WPINC . '/class-wp-image-editor.php';
require_once ABSPATH . WPINC . '/class-wp-image-editor-gd.php';
require_once ABSPATH . WPINC . '/class-wp-image-editor-imagick.php';
require_once ABSPATH . WPINC . '/class-avif-info.php';
/**
* Filters the list of image editing library classes.
*
* @since 3.5.0
*
* @param string[] $image_editors Array of available image editor class names. Defaults are
* 'WP_Image_Editor_Imagick', 'WP_Image_Editor_GD'.
*/
$implementations = apply_filters( 'wp_image_editors', array( 'WP_Image_Editor_Imagick', 'WP_Image_Editor_GD' ) );
$editors = wp_cache_get( 'wp_image_editor_choose', 'image_editor' );
if ( ! is_array( $editors ) ) {
$editors = array();
}
// Cache the chosen editor implementation based on specific args and available implementations.
$cache_key = md5( serialize( array( $args, $implementations ) ) );
if ( isset( $editors[ $cache_key ] ) ) {
return $editors[ $cache_key ];
}
// Assume no support until a capable implementation is identified.
$editor = false;
foreach ( $implementations as $implementation ) {
if ( ! call_user_func( array( $implementation, 'test' ), $args ) ) {
continue;
}
// Implementation should support the passed mime type.
if ( isset( $args['mime_type'] ) &&
! call_user_func(
array( $implementation, 'supports_mime_type' ),
$args['mime_type']
) ) {
continue;
}
// Implementation should support requested methods.
if ( isset( $args['methods'] ) &&
array_diff( $args['methods'], get_class_methods( $implementation ) ) ) {
continue;
}
// Implementation should ideally support the output mime type as well if set and different than the passed type.
if (
isset( $args['mime_type'] ) &&
isset( $args['output_mime_type'] ) &&
$args['mime_type'] !== $args['output_mime_type'] &&
! call_user_func( array( $implementation, 'supports_mime_type' ), $args['output_mime_type'] )
) {
/*
* This implementation supports the input type but not the output type.
* Keep looking to see if we can find an implementation that supports both.
*/
$editor = $implementation;
continue;
}
// Favor the implementation that supports both input and output mime types.
$editor = $implementation;
break;
}
$editors[ $cache_key ] = $editor;
wp_cache_set( 'wp_image_editor_choose', $editors, 'image_editor', DAY_IN_SECONDS );
return $editor;
}
/**
* Prints default Plupload arguments.
*
* @since 3.4.0
Changelog
Version | Description |
---|---|
3.4.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.