add_image_size() per tipi di post specifici
set_post_thumbnail_size( 80, 80, true ); // true per tutti i tipi di post
Supponiamo che nel mio blog ci siano due tipi di post: Articolo, Video e Prodotto. Potrei volere una dimensione immagine di 80x80 per i miei articoli, ma 100x100 per i video e 50x100 per i Prodotti. Per quanto ne so, sono costretto a creare miniature per le immagini dei miei Articoli nelle dimensioni di 100x100 e anche 50x100. E per i miei prodotti, sono costretto a creare miniature che sono 80x80 e 100x100, anche se non le userò mai.
Esiste un modo per creare dimensioni immagini basate sui tipi di post in modo da non finire per creare un sacco di immagini che non hai intenzione di utilizzare, sprecare risorse che potrebbero essere utilizzate altrove?

Non è possibile basare le dimensioni delle immagini sul tipo di articolo, poiché le immagini non sono ancora associate a un articolo quando le carichi e vengono create le dimensioni intermedie (quando le aggiungi tramite "Nuovo file multimediale" non sono associate a nessun articolo).
Tuttavia, recentemente ho creato due plugin che insieme fanno quello che vuoi. Virtual intermediate images intercetta la creazione delle dimensioni intermedie delle immagini: non vengono create sul disco, ma esistono ancora nell'array dei metadati. Questo fa credere a WordPress che esistano, quindi puoi usarle come immagini normali. Il plugin complementare, On-Demand Resizer, crea le dimensioni mancanti delle immagini quando vengono richieste. La prima volta che l'immagine viene richiesta viene creata, tutte le richieste successive serviranno semplicemente la nuova immagine creata.
Questi plugin hanno bisogno di una riscrittura prima che li inserisca nella directory dei plugin di WordPress, ma dovrebbero essere sicuri. O almeno hanno commenti TODO
dove non sono sicuri.

Ho pubblicato del codice in quest'altro thread che imposta un transient con il tipo di post quando si carica un'immagine, e poi verifica il valore di quel transient e regola la dimensione della miniatura del post di conseguenza quando il caricamento è terminato. Non è perfetto o infallibile, ma dovrebbe almeno dimostrare il concetto.

Ho ideato la seguente soluzione. Crea immagini solo per il tipo di post personalizzato senza generarne altre aggiuntive. L'unico problema è che se utilizzi plugin come Advanced Custom Fields, quando cerchi di visualizzare il campo galleria, mostra solo le dimensioni predefinite delle immagini di WordPress: 'thumbnail', 'medium', 'large' e non puoi accedere alle dimensioni personalizzate delle immagini del post create.
if ( function_exists ('add_image_size') ) {
function remove_default_img($sizes) {
unset( $sizes['medium']);
unset( $sizes['large']);
return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_img');
$type = get_post_type($_REQUEST['post_id']);
// Dimensioni Immagini per Post Personalizzato =================================
if ( $type === "Custom_Post_Name" || $post_type === "Custom_Post_Name" ) {
add_image_size('custom_size_img', 165, 249, true);
}
}
