web-dev-qa-db-fra.com

Passer de l'ancien champion personnalisé à un nouveau post_thumbnails

Je viens de reprendre un site WordPress occupé qui compte environ 800 publications à ce jour.

Le site existe depuis assez longtemps pour qu'il ait été lancé avant que post_thumbnails ne soit disponible. Ils ont corrigé cette lacune avec un champ personnalisé appelé "Image" contenant la valeur du chemin relatif à l'image, par exemple "/wp-content/uploads/2012/11/image.jpg".

Le thème utilise Tim Thumb pour créer différentes tailles de pouce.

J'adorerais m'éloigner de cela et utiliser simplement la fonctionnalité post_thumbnails pour définir la taille dans functions.php et se débarrasser de timthumb.php.

J'ai cherché, mais je n'ai pas trouvé un bon moyen de faire le changement. Aucune suggestion?

4
NatalieMac

J'ai eu le même problème la semaine dernière et voici ce que j'ai fait:

if (has_post_thumbnail()) 
    //if the post already has a post thumbnail then just use that
    the_post_thumbnail($size = 'post-thumbnail', $attr = '');
else{
    //if not then convert the custom field to the post thumbnail and display that
    $at_url = get_post_meta($post->ID, 'image', true);
    $at_id = get_image_id_by_url($at_url);
    delete_post_meta($post->ID, 'image');
    if ($at_id){
        set_post_thumbnail($post, $at_id);
        the_post_thumbnail($size = 'post-thumbnail', $attr = '');
    }else{
        //else just display a default image or not :)
    }
}
5
Bainternet