Come disabilitare la generazione di dimensioni di immagine predefinite per alcuni tipi di post personalizzati?


12

Ho usato il tipo di post personalizzato, dove non sono richieste le dimensioni "miniatura", "media" e "grande". Devo disabilitare queste dimensioni e creare una funzione o un plug-in, dove posso impostare, quale dimensione dell'immagine è richiesta per ogni tipo di post personalizzato.

Il mio primo passo è l'aggancio della funzione get_intermediate_image_sizes da wp-Includes / media.php. Ho aggiunto questo codice a Functions.php ma non funziona :(

add_filter('get_intermediate_image_sizes', 'get_intermediate_image_sizes_fixed');
function get_intermediate_image_sizes_fixed() {
    global $_wp_additional_image_sizes;
    //$image_sizes = array('thumbnail', 'medium', 'large'); // Standard sizes
    $image_sizes = array();
    if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) )
        $image_sizes = array_merge( $image_sizes, array_keys( $_wp_additional_image_sizes ) );
return apply_filters( 'intermediate_image_sizes', $image_sizes );
}   

UPD: la modifica di questa riga in media.php funziona. Tipi predefiniti dopo modifiche non generate.

$image_sizes = array('thumbnail', 'medium', 'large');

Ma come far funzionare il mio gancio?


1
vorrei una risposta anche a questo
urok93,

2
Non è così che usi quel filtro. Per cancellare le dimensioni predefinite è sufficiente aggiungerlo con una priorità molto bassa e restituire un array vuoto. Tuttavia, ciò non risolverà il tuo problema, poiché ciò influirà su tutti i tipi di post. Non credo che ci sia un modo per fare ciò che vuoi nell'attuale versione di WP. Prova a richiedere agli sviluppatori WP di aggiungere l' $attachment_idargomento al filtro all'interno di questa funzione. In questo modo puoi controllare il tipo di posta all'interno del tuo hook
onetrickpony, l'

Il mio passo è solo un esperimento ma non una soluzione completa. Come posso usare correttamente il filtro? PS Grazie per il link ..
Bohdan Hdal,

Qualche modifica a WP che lo rende possibile ora?
Drivingralle,

Nessun cambiamento. Sempre lo stesso problema.
Bohdan Hdal,

Risposte:


7

Penso che l'unica soluzione che hai al momento sia disabilitare tutte le dimensioni intermedie dell'immagine:

add_filter( 'intermediate_image_sizes', '__return_empty_array', 99 );

E quindi generarli manualmente, a seconda del tipo di post, collegandosi a 'wp_generate_attachment_metadata', dove si ha accesso all'ID allegato (e quindi al suo post principale):

function do_your_stuff( $data, $attachment_id ) {
  // generate intermediate images

  return $data;
}

add_filter( 'wp_generate_attachment_metadata', 'do_your_stuff', 10, 2 );

Quali sono i parametri 10 e 2 che passi nell'ultimo add_filter?
Luca,

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.