web-dev-qa-db-fra.com

add_image_size et add_filter ('image_size_names_choose', 'my_custom_image_sizes') ne fonctionnent pas avec wordpress 3.5.2

J'arrache mes cheveux en essayant d'obtenir des tailles d'image supplémentaires dans la section média lorsque je télécharge de nouvelles photos. Cela fonctionne sur les anciennes versions de wordpress mais je n'arrive pas à le faire fonctionner sur v 3.5.2

Voici mon code dans le fichier functions.php et j'utilise le framework underscores.me pour construire le thème.

/*
    Custom image sizes
*/

add_action('after_setup_theme', 'images_setup');

function images_setup() {

    add_theme_support('post-thumbnails');

    if (function_exists('add_image_size')) {
        add_image_size('slider', 1170, 400, true);
    }
    // Getting these sizes to appear in the media section within wordpress
    add_filter('image_size_names_choose', 'my_custom_image_sizes');

    function my_custom_image_sizes($sizes) {
        $custom_sizes = array(
            //'custom-post-thumbnail' => 'Custom Post Thumbnail',
            'slider' => 'Slider'
        );

        return array_merge($sizes, $custom_sizes);
    }

}
1
arkhamDev

J'utilise WordPress 3.5.2. Voici un extrait de mon fichier functions.php, qui me permet correctement de sélectionner une taille de miniature lorsque je télécharge une image.

// Basic setup for thumbnail support.
function themeSetup()
{
    add_theme_support('post-thumbnails');

    add_image_size('tiny', 128, 79);
    add_image_size('small', 256, 158);
    add_image_size('medium', 384, 237);
    add_image_size('large', 512, 316);
}
add_action('after_setup_theme', 'themeSetup');

// Addes custom sizes to Media Library.
function addMySizes($defaultSizes)
{
    $mySizes = array
    (
        'tiny' => 'Tiny',
        'small' => 'Small',
        'medium' => 'Medium',
        'large' => 'Large'
    );  

    return array_merge($defaultSizes, $mySizes);
}  
add_filter('image_size_names_choose', 'addMySizes');

Comme vous le remarquerez, nous avons des réponses assez similaires. Je ne suis pas un PHP expert, mais ces fonctions imbriquées me donnent les willies. Je voudrais les annoncer et voir si cela corrige votre code. C’est peut-être juste un problème de synchronisation, c’est-à-dire que votre appel à add_filter() est trop tôt.

Si cela ne résout pas le problème, c'est probablement autre chose. Essayez de désactiver tous vos plugins, etc., la procédure de débogage WordPress standard.

2
425nesp