WordPress Version: 3.9
/**
* Tests which editors are capable of supporting the request.
*
* @since 3.5.0
* @access private
*
* @param array $args Additional data. Accepts { 'mime_type'=>string, 'methods'=>{string, string, ...} }
* @return string|bool 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';
/**
* Filter the list of image editing library classes.
*
* @since 3.5.0
*
* @param array $image_editors List of available image editors. 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'));
foreach ($implementations as $implementation) {
if (!call_user_func(array($implementation, 'test'), $args)) {
continue;
}
if (isset($args['mime_type']) && !call_user_func(array($implementation, 'supports_mime_type'), $args['mime_type'])) {
continue;
}
if (isset($args['methods']) && array_diff($args['methods'], get_class_methods($implementation))) {
continue;
}
return $implementation;
}
return false;
}