add_image_size () per tipi di post specifici


18
set_post_thumbnail_size( 80, 80, true ); // true for all post types

Supponiamo di avere due tipi di post in gioco sul mio blog: Post, Video e Prodotto. Potrei desiderare una dimensione di immagine 80x80 per i miei post, ma 100x100 per i miei video e 50x100 per i miei prodotti. Per quanto ne so, sono costretto a creare miniature per le mie immagini Post nelle dimensioni di 100x100 e anche 50x100. E per i miei prodotti, sono costretto a creare miniature 80x80 e 100x100, anche se non le userò mai.

C'è un modo per creare dimensioni di immagini basate sui tipi di post in modo da non finire per creare un gruppo di immagini che non prevedi di utilizzare e sprecare risorse che potrebbero essere utilizzate altrove?


Ho incontrato esattamente la stessa necessità.
MikeSchinkel,

Cosa succede se si utilizza questa funzione image_resize nel tema nelle parti in cui è necessaria quella dimensione dell'immagine? È inoltre possibile scrivere una funzione abbreviata per molteplici usi a seconda del contesto.

Mi sembra un'ovvia supervisione, non è ancora stato affrontato?
Nathan Hornby,

Risposte:


12

Non è possibile basare le dimensioni dell'immagine sul tipo di post, poiché le immagini non sono ancora allegate a un post quando le si carica e vengono create le dimensioni intermedie dell'immagine (quando le si aggiunge semplicemente tramite "Nuovi media" non vengono nemmeno allegate a qualsiasi post).

Tuttavia, di recente ho creato due plugin che insieme faranno quello che vuoi. Le immagini intermedie virtuali intercetteranno la creazione delle dimensioni delle immagini intermedie: non verranno create su disco, ma esistono ancora nell'array di metadati. Questo fa pensare a WordPress che esistano in modo da poterli usare come normali immagini. Il plug -in associato, On-Demand Resizer creerà le dimensioni dell'immagine mancanti quando vengono richieste. Alla prima creazione dell'immagine, tutte le richieste successive verranno semplicemente servite all'immagine appena creata.

Questi plugin necessitano di una riscrittura prima di inserirli nella directory dei plugin di WordPress, ma dovrebbero essere sicuri. O almeno hanno TODOcommenti in cui non sono sicuri.


Bello!
MikeSchinkel,

2

Ho postato del codice su quest'altro thread che imposta un transitorio con il tipo di post durante il caricamento di un'immagine, quindi controlla il valore di quel transitorio e regola le dimensioni post-miniatura di conseguenza al termine del caricamento. Non è perfetto o antiproiettile, ma dovrebbe almeno dimostrare il concetto.


0

Ho trovato la seguente soluzione. Crea immagini solo per il tipo di post personalizzato senza crearne di ulteriori. L'unico problema è che se si utilizzano plug-in come campi personalizzati avanzati, quando si tenta di eseguire il rendering del campo della galleria, vengono visualizzate solo le dimensioni predefinite delle immagini wordpress: 'thumbnail', 'medium', 'large' e non è possibile accedere alle dimensioni personalizzate dell'immagine post creata .

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']);
// Post_Name Image Sizes ======================================================
if ( $type === "Custom_Post_Name" || $post_type === "Custom_Post_Name" ) {
add_image_size('custom_size_img', 165, 249, true);
}

}

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.