web-dev-qa-db-fra.com

Comment créer une taille d'image sélectionnée par défaut dans le téléchargement de média - WP v3.5

Nu avec moi. Je souhaite qu'une taille d'image personnalisée soit sélectionnée par défaut dans la page contextuelle de téléchargement de contenu multimédia. Dans Wordpress v3.4.2 et les versions antérieures, ce code élégant fonctionnait parfaitement:

function my_insert_custom_image_sizes( $sizes ) {
    // get the custom image sizes
    global $_wp_additional_image_sizes;
    // if there are none, just return the built-in sizes
    if ( empty( $_wp_additional_image_sizes ) )
        return $sizes;

    // add all the custom sizes to the built-in sizes
    foreach ( $_wp_additional_image_sizes as $id => $data ) {
        // take the size ID (e.g., 'my-name'), replace hyphens with spaces,
        // and capitalise the first letter of each Word
        if ( !isset($sizes[$id]) )
            $sizes[$id] = ucfirst( str_replace( '-', ' ', $id ) );
    }

    return $sizes;
}


// Which custom image size selected by default
function my_set_default_image_size () { 
     return 'custom-image-size-2';
}


function custom_image_setup () {
    add_theme_support( 'post-thumbnails' );
    add_image_size( 'custom-image-size-1', 160, 9999 ); //  columned
    add_image_size( 'custom-image-size-2', 300, 9999 ); //  medium
    add_image_size( 'custom-image-size-3', 578, 190, true ); //  cropped
    add_filter( 'image_size_names_choose', 'my_insert_custom_image_sizes' );
    add_filter( 'pre_option_image_default_size', 'my_set_default_image_size' );
}

add_action( 'after_setup_theme', 'custom_image_setup' );

Ainsi, my_insert_custom_image_sizes ajoute les images personnalisées à la page multimédia et my_set_default_image_size doit sélectionner la taille custom-image-size-2. Ce code a cessé de fonctionner avec la version Wordpress 3.5. Savez-vous comment je peux accomplir cela dans la v3.5?

12
Christine Cooper

Essayez ceci. Votre second argument add_filter () est une fonction qui affectera l'option en cours via un retour:

function theme_default_image_size() {
    return 'custom-image-size-2';
}
add_filter( 'pre_option_image_default_size', 'theme_default_image_size' );

Vous pouvez également regarder dans le filtre pre_update_option _ {$ option} et mettre à jour la valeur une fois. Vous n'avez donc pas besoin de lancer ce filtre à chaque fois (vous pouvez économiser 0,01s, mais vous économisez tout de même!): )

ou bon vieux update_option () :

update_option( 'image_default_size', 'custom-image-size-2' );
2
Eric Holmes

Ajoutez la fonction au fichier functions.php du thème.

if ( function_exists( 'add_theme_support' ) ) {
    add_theme_support( 'post-thumbnails' );
        set_post_thumbnail_size( 150, 150 ); // default Post Thumbnail dimensions   
}


function custom_image_setup () {

        add_theme_support('post-thumbnails');
        set_post_thumbnail_size(640,320);

    add_image_size( 'custom-image-size-1', 180, 9999 ); //  columned
    add_image_size( 'custom-image-size-2', 350, 9999 ); //  medium
    add_image_size( 'custom-image-size-3', 600, 250, true ); //  cropped

    add_filter( 'image_size_names_choose', 'theme_custom_image_sizes' );
    add_filter( 'pre_option_image_default_size', 'theme_default_image_size' );
}


if ( function_exists( 'add_image_size' ) ) { 
    add_image_size( 'category-thumb', 300, 9999 ); //300 pixels wide (and unlimited height)
    add_image_size( 'homepage-thumb', 220, 180, true ); //(cropped)
}

Utilisation des nouvelles tailles d'image dans les fichiers de modèle d'un thème.

if ( has_post_thumbnail() ) { the_post_thumbnail( 'category-thumb' ); }
0
Selva Balaji