the_post_thumbnail ritaglio rigido non funziona in nessun caso

8 dic 2011, 04:07:00
Visualizzazioni: 27.4K
Voti: 8

Non importa cosa faccia - non riesco a far funzionare la modalità di ritaglio rigido in the_post_thumbnail.

Ecco cosa ho:

add_image_size( 'Blog', 300, 300, true ); 
the_post_thumbnail('Blog');

Ho anche provato:

set_post_thumbnail_size( 300, 300, true );
the_post_thumbnail();

Ho provato a caricare nuove immagini e a utilizzare il plugin "Regenerate Thumbnails", ma ancora nessun risultato. Ignora completamente il "true" e si comporta come se fosse "false". Per esempio, invece di avere un'immagine 300x300, ottengo 300x238 o simili.

Qualcun altro ha riscontrato questo problema? La mia libreria GD è abilitata.

Grazie per qualsiasi suggerimento che possiate offrire =)

5
Commenti

Il tuo codice sembra corretto. Mi sono arrovellato su questo problema in passato e il problema che ho riscontrato era dovuto al fatto che le immagini caricate dal mio cliente erano più piccole della dimensione di ritaglio e, mentre ridimensionava la dimensione maggiore, non ridimensionava entrambe. Era qualche versione fa, ma potrebbe essere qualcosa da verificare.

patnz patnz
8 dic 2011 05:22:26

Carica un'immagine più grande di 300x300 e dovrebbe funzionare.

Chris_O Chris_O
8 dic 2011 07:24:25

Grazie per i tuoi commenti. Purtroppo, ho provato a caricare immagini grandi per essere ridimensionate, ma ancora non ho avuto fortuna. Ad esempio, ho modificato il mio codice in questo modo:

add_image_size( 'Blog', 200, 200, true );

L'immagine che ho caricato (nuova) è 359x500. Il risultato finale è un'immagine di 143x200. Non ho idea di cosa altro provare lol

Ancora una volta, apprezzo i tuoi commenti!

Tom Tom
8 dic 2011 21:41:01

Molto probabilmente un problema del server -> controlla la mia risposta qui sotto.

Brian Fegter Brian Fegter
17 feb 2012 11:33:22

Riferendomi alla modifica che ho appena approvato: per favore aggiungi le soluzioni come risposta. Potrai contrassegnarle come soluzione (segno di spunta verde sotto le frecce di voto) due giorni dopo.

kaiser kaiser
26 lug 2012 04:11:30
Tutte le risposte alla domanda 8
2

Spesso il motivo per cui non funziona è perché non hai rigenerato le miniature per tutte le tue immagini.

Se hai modificato le dimensioni delle tue immagini, dovrai rigenerare le miniature utilizzando questo plugin: http://wordpress.org/extend/plugins/regenerate-thumbnails/

26 lug 2012 05:12:54
Commenti

Non credo tu possa farlo dalla libreria multimediale predefinita, vero? Ho dovuto usare il plugin "Regenerate Thumbnails".

Simon East Simon East
15 set 2014 12:17:10

Sì, è vero. Mi ero dimenticato di menzionarlo un paio d'anni fa quando ero più alle prime armi :P Ho modificato la mia risposta.

bryceadams bryceadams
15 set 2014 15:09:56
4

Direi che potresti non avere le librerie GD installate sul tuo server. Senza di esse, otterrai solo il caricamento dei file ma nessun ritaglio delle immagini.

Per prima cosa, fai un controllo di base chiamando phpinfo() per verificare se GD è installato.

Installazione di GD su Linux

Se hai accesso alla shell, digita semplicemente questo comando:

sudo apt-get install php5-gd

Dovrai riavviare il server dopo aver installato GD

Ecco il comando per riavviare Apache:

/etc/init.d/apache2 restart

Hosting Condiviso

Se sei su un server condiviso, dovrai contattare il tuo host e chiedergli di installarlo sul tuo server.

Un'Ultima Cosa

Il tuo tema supporta le miniature?

add_theme_support('post-thumbnails');
17 feb 2012 11:32:40
Commenti

Grazie mille per la risposta, Brian =)

Ho verificato che la libreria GD è installata sul mio server (sto usando WAMP) - ho anche riscontrato lo stesso problema sul mio server e su altri.

Il problema mi ha lasciato perplesso, continuo a pensare che sia qualcosa che sto facendo io ma tutto sembra a posto.

Hai altre idee? Grazie mille.

Tom Tom
19 feb 2012 05:45:30

@Tom Dai un'occhiata all'ultima modifica. :)

Brian Fegter Brian Fegter
19 feb 2012 13:53:55

Grazie per il follow up. Ho effettivamente abilitato le miniature, dato che posso scegliere l'immagine in evidenza e questa viene visualizzata, semplicemente non ritaglia rispettando le dimensioni che specifico. Potrebbe essere in conflitto con qualcos'altro nel mio tema? Per ora sto usando TimThumb per risolvere, ma preferirei usare le funzioni di WordPress quando possibile.. Grazie ancora =)

Tom Tom
20 feb 2012 19:53:48

Questa era la risposta che stavo cercando. Sapevo che dovevo installare qualche pacchetto, e stavo solo cercando quale... grazie

Orabîg Orabîg
14 gen 2013 02:05:56
2

Alla fine ho risolto questo problema.

Sembra che il ritaglio forzato funzioni se imposti la dimensione dell'immagine all'interno di una funzione agganciata all'hook "after_setup_theme".

Quindi, il codice seguente funzionerà:

function add_custom_sizes() {
    add_image_size( 'portfolio-thumb', 243, 163, true );
    add_image_size( 'portfolio-image', 1074, 725, true );
    add_image_size( 'available-homes', 500, 279, true );
    add_image_size( 'idea-thumb', 146, 141, true );
}
add_action('after_setup_theme','add_custom_sizes');

Questo ti permetterà di ottenere immagini effettivamente ritagliate forzatamente utilizzando le dimensioni specificate con the_post_thumbnail().

Spero che possa aiutare anche qualcun altro.

22 nov 2012 19:21:46
Commenti

ho provato tutto, incluso questo, ma non ha funzionato

Tintinabulator Zea Tintinabulator Zea
3 ott 2018 06:44:23

Anche questo non funziona per me.

Lars SG Lars SG
11 feb 2021 07:30:57
0

Invece di definire la dimensione della miniatura del post come blog, perché non impostare semplicemente la miniatura del post esplicitamente nel template dove vuoi che venga visualizzata...

the_post_thumbnail($post->ID, array(300,300, true));
31 dic 2011 00:12:31
0

Ho appena avuto lo stesso problema e la soluzione per me è stata rigenerare le miniature come suggerito da bryceadams (purtroppo non ho abbastanza punti per votare la sua risposta).

Avvertenza: Le immagini devono essere archiviate localmente, non in remoto. Presumibilmente non vengono generate miniature per le immagini remote.

9 mag 2013 13:28:14
0

Nel mio caso, questo problema era causato dai permessi dei file sulle immagini. Avevo copiato le immagini da un server a un altro, dimenticando di cambiare la proprietà. Quando sono state impostate le nuove dimensioni delle immagini e le ho rigenerate, le vecchie immagini non sono state sovrascritte come avrebbero dovuto.

Per risolvere il problema mi sono connesso al server via SSH, ho navigato fino alla cartella wp-content/uploads e ho reimpostato la proprietà di tutte le immagini presenti. Ad esempio:

chown -R {utente web}:{gruppo} .

Spero possa essere utile a qualcuno.

27 mag 2015 13:01:28
0

Non avrai mai un'immagine ritagliata in modo rigido diversa dalle dimensioni predefinite. Non troverai questa risposta nei forum di WordPress, o se la trovi, ti mostreranno una carota per settimane finché non diventi ansioso e vieni bloccato o risolvono il problema in silenzio.

Le immagini ritagliate in modo rigido sono disponibili solo per:

  • Miniatura
  • Tutte le altre dimensioni TRANNE miniatura E LE TUE DIMENSIONI PERSONALIZZATE

Le cose che non sono possibili non vengono mai mostrate nel front-end o vengono coperte il più possibile nei forum (il nostro progetto gratuito .org è il loro prodotto .com) anche se le opzioni sopra ti hanno fatto strappare i capelli per mesi.

La seconda opzione dovrebbe dire "TUTTE LE ALTRE DIMENSIONI TRANNE LE TUE"

Sto sviluppando un plugin per questo, con un extra magico. Lo completerò presto, ma avrò bisogno di aiuto per pubblicarlo nella libreria dei plugin dato che sono stato bannato! hehe (per aver aiutato altri con bug non segnalati o ignorati)

27 ott 2012 01:11:50
0

Ho avuto lo stesso problema e ho installato un plugin che permette di rigenerare una/alcune/tutte le immagini. Questo è il plugin: [http://wordpress.org/plugins/regenerate-thumbnails/]

Non ho trovato il modo di farlo dall'interfaccia di amministrazione di WP a meno che non cancelli e ricarichi di nuovo l'immagine.

Un altro modo per farlo, se non vuoi usare un plugin, sarebbe utilizzare le funzioni PHP

function wp_regenerate() {
include( ABSPATH . 'wp-admin/includes/image.php' );
wp_generate_attachment_metadata( $thumbnail_id, $absolute_path_to_image ); }

add_action('after_setup_theme', 'wp_regenerate');

dove $thumbnail_id e $absolute_path_to_image devono essere impostati con i valori desiderati.

Grazie a @briceadams e @adriaticiq. Non posso ancora votarvi ma lo farò non appena mi sarà permesso.

30 dic 2013 17:45:29