web-dev-qa-db-fra.com

Ajouter une nouvelle taille d’image à l’éditeur de média afin que les utilisateurs puissent s’inscrire dans le message?

Je souhaite créer une taille supplémentaire pour les images téléchargées, que mes utilisateurs peuvent ensuite "insérer dans un message". Je comprends que add_image_size () ajoutera une nouvelle taille d’image que je pourrai utiliser dans mon thème, mais cette nouvelle taille n’est pas disponible sur l’écran de téléchargement de média.

Existe-t-il un moyen d’afficher de nouveaux formats sur cet écran afin qu’ils soient accessibles aux personnes qui ajoutent/modifient des messages? J'ai un thème tweaky qui nécessite plus que les 3 tailles par défaut + l'original.

Merci!

6
Michelle

Je viens de trouver un nouveau plugin qui semble faire exactement ce que j'ai décrit ci-dessus:

http://wordpress.org/extend/plugins/additional-image-sizes-zui/

J'espère que cela aide quelqu'un!

2
Michelle

Même si nous créons notre taille d'image, nous aurons besoin de code supplémentaire pour l'ajouter dans la liste déroulante Media Uploaders des tailles disponibles. D'abord enregistrons la taille. Nous pouvons utiliser le init ou after_setup_theme hook:

function theme_init() {
    add_image_size( 'banner_image', 1200, 200, true );
}
add_action( 'init', 'theme_init' );

Nous devons utiliser le image_size_names_choose hook pour ajouter la nouvelle taille aux tailles disponibles. Le Developer Resources suggère en utilisant les éléments suivants:

/**
 * @param Array $default_sizes - Array( 'size_slug' => 'Size Title' )
 *
 * @return Array $default_sizes
 */
function image_sizes_to_mediapicker( $default_sizes ) {
    return array_merge( $default_sizes, array(
        'banner_image' => __( 'Banner Image' ),
    ) );
}
add_filter( 'image_size_names_choose', 'image_sizes_to_mediapicker' );

Ce qui précède fonctionne bien, mais nous pouvons peut-être automatiser cela un peu. Le tableau ci-dessous suppose que les tailles supplémentaires sont nommées avec des traits de soulignement. Il ne s'agit donc peut-être pas d'une solution optimale fonctionnant avec des plugins qui ajoutent leurs propres tailles. Il est également fortement commenté de montrer ce que chaque variable est.

/**
 * @param Array $default_sizes - Array( 'size_slug' => 'Title' )
 *
 * @return Array $return_sizes
 */
function image_sizes_to_mediapicker( $default_sizes ) {
    global $_wp_additional_image_sizes;                             // All additionally added sizes

    $size_slugs     = array_keys( $_wp_additional_image_sizes );    // Get array of additional sizes
    $default_slugs  = array_keys( $default_sizes );                 // Get array of default sizes
    $exclude_sizes  = array( 'medium_large' );                      // Exclude any image sizes
    // $exclude_sizes = get_option( 'mediapicker_exlcuded_sizes', array() )             // IF we want to previously set / retrieve an array of excluded options
    $sizes_needed   = array_diff( $size_slugs, $default_slugs, $exclude_sizes );        // Get difference between the defaults and additional sizes
    $return_sizes   = $default_sizes;                               // Let's keep separation between passed and returned

    foreach( $sizes_needed as $size_slug ) {
        $pretty_title               = ucwords( str_replace( '_', ' ', $size_slug ) );   // Create a pretty title
        $return_sizes[ $size_slug ] = __( $pretty_title );
    }

    return $return_sizes;
}
add_filter( 'image_size_names_choose', 'image_sizes_to_mediapicker' );
1
Howdy_McGee

J'ai déchiffré le code et il ne semble pas y avoir de moyen de le faire.

La liste des tailles de vignettes utilisées par WP lors du rendu de ces boutons radio est codée en dur, et il ne semble pas y avoir de filtres ou d'actions auxquels se connecter.

C'est vraiment étrange. Je m'attendrais vraiment à ce qu'il y ait un moyen de faire cela.

Les gens doivent-ils pouvoir insérer TOUTES les tailles personnalisées dans les messages à un moment donné? Ou certains d'entre eux sont-ils utilisés uniquement dans des modèles? Je suppose que ce que je demande, c'est s'il est possible de créer une ou plusieurs des tailles par défaut (pouce, moyen, grand), celles qui sont ajoutées dans les publications, et d'enregistrer les versions supplémentaires pour les tailles personnalisées. Sais ce que je veux dire?

1
MathSmath