È possibile determinare quando l'utente si trova su "Media > Aggiungi nuovo" rispetto a "Articolo > Aggiungi un'immagine"
Voglio racchiudere il filtro qui sotto in un condizionale che verifichi se l'utente sta caricando un'immagine dal Media Manager (Admin > Media > Aggiungi nuovo) e non dalla procedura di upload dell'editor di articoli.
È possibile distinguerlo? $pagenow in entrambi i casi sembra essere lo stesso...
//nessuna miniatura aggiuntiva
global $pagenow;
if($pagenow=="media-new.php"){
add_filter('intermediate_image_sizes_advanced','ce4_no_thumbs');
}
function ce4_no_thumbs($sizes){return array();}
Aggiornamento: Sembra che ci sia un post_id nella querystring quando l'upload viene effettuato da un articolo e non quando viene effettuato tramite "media manager > aggiungi nuovo", tuttavia, il seguente test passa in entrambi i casi...
if ( is_admin() && !isset($_GET['post_id']) ) {
/*Questo non dovrebbe attivarsi se l'utente sta caricando un'immagine in un articolo,
poiché post_id è presente nella querystring. Tuttavia, nel mio test
riesce comunque a passare.*/
add_filter('intermediate_image_sizes_advanced','ce4_no_thumbs');
}

Ho risposto a questa domanda nei commenti della tua domanda precedente.
...puoi utilizzare il filtro suggerito da @Backie qui sopra (
intermediate_image_sizes_advanced
), e nella funzione hook controllare un campo nella raccolta post chiamato _wp_http_referer. Questo ti dice da dove proviene la richiesta di upload.Se _wp_http_referer contiene "media-new.php", puoi restituire un array vuoto (che fermerà temporaneamente la generazione delle miniature, ma non modificherà alcuna impostazione delle miniature). Altrimenti, restituisce l'array $sizes così com'è.
Prova:
function wpsx_7756_no_thumbnails($arr_sizes){
if(stristr($_POST['_wp_http_referer'], 'media-new.php')) {
return array();
}
return $arr_sizes;
}
add_filter('intermediate_image_sizes_advanced','wpsx_7756_no_thumbnails');
Fammi sapere se funziona.
Tieni presente che aggiungere il filtro mentre sei nel modulo di upload non farà quello che vuoi--il modulo invia a una pagina separata che gestisce l'upload, e non rispetterà il tuo filtro.

@MathSmath: L'ho aggiunto a functions.php e testato. Sfortunatamente, tutte le miniature vengono ancora create quando si utilizza "Media > Aggiungi nuovo". Hai idee per testare il tracciamento? echo "il referrer del post: ".$_POST['_wp_http_referer']; (restituisce un intero incrementato di +1 ogni volta che avviene un caricamento)

Forse un'altra opzione sarebbe testare l'iframe? Appare nel caricatore dei post, ma apparentemente non nel caricatore del gestore media > aggiungi nuovo.

@Scott B Accidenti! Ero sicuro che avrebbe funzionato :) Non sono sicuro riguardo alla questione dell'iframe. Per tracciare, proverei ad aggiungere un wp_die(json_encode($_POST)) all'inizio della tua funzione "no thumbnails". Dumperà il contenuto della collezione post nel momento in cui viene eseguito il filtro. È possibile che quando Wordpress si occupa effettivamente di creare le miniature, la collezione post originale sia fuori dallo scope? In ogni caso, potresti vedere qualcosa nella collezione post disponibile che PUOI usare per identificare il referrer.

@MAthSmath: Capito! if(!stristr($_POST['type'], 'image')) {return array();}return $arr_sizes;}
