Come ottenere una lista di tutte le possibili dimensioni delle miniature impostate in un tema
Quale funzione posso utilizzare in un plugin per ottenere le dimensioni di ogni formato immagine (preferibilmente in un array) che è definito in un tema child?
Per chiarezza, non sto chiedendo come creare una nuova dimensione immagine.

Trovato qui. La risposta è:
global $_wp_additional_image_sizes;
print '<pre>';
print_r( $_wp_additional_image_sizes );
print '</pre>';

Aggiungerlo all'inizio del file functions.php
non funzionerà, ma inseriscilo in una qualsiasi delle tue funzioni in quel file e dovrebbe funzionare.

Al 2023 questa è la risposta corretta: https://wordpress.stackexchange.com/questions/33532/how-to-get-a-list-of-all-the-possible-thumbnail-sizes-set-within-a-theme#answer-410707

Il core di WordPress non ha un metodo nativo per ottenere le dimensioni intermedie delle immagini (cioè larghezza e altezza), ma la seguente funzione helper otterrà tutte le dimensioni delle immagini registrate insieme alle loro dimensioni:
/**
* Ottiene tutte le dimensioni delle immagini registrate insieme alle loro dimensioni
*
* @global array $_wp_additional_image_sizes
*
* @link http://core.trac.wordpress.org/ticket/18947 Ticket di riferimento
*
* @return array $image_sizes Le dimensioni delle immagini
*/
function _get_all_image_sizes() {
global $_wp_additional_image_sizes;
$default_image_sizes = get_intermediate_image_sizes();
foreach ( $default_image_sizes as $size ) {
$image_sizes[ $size ][ 'width' ] = intval( get_option( "{$size}_size_w" ) );
$image_sizes[ $size ][ 'height' ] = intval( get_option( "{$size}_size_h" ) );
$image_sizes[ $size ][ 'crop' ] = get_option( "{$size}_crop" ) ? get_option( "{$size}_crop" ) : false;
}
if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) ) {
$image_sizes = array_merge( $image_sizes, $_wp_additional_image_sizes );
}
return $image_sizes;
}
Che produrrà risultati simili a:
Array
(
[thumbnail] => Array
(
[width] => 150
[height] => 150
[crop] => 1
)
[medium] => Array
(
[width] => 300
[height] => 300
[crop] =>
)
[medium_large] => Array
(
[width] => 768
[height] => 0
[crop] =>
)
[large] => Array
(
[width] => 1024
[height] => 1024
[crop] =>
)
)

+1 per una risposta più completa. Le altre restituiscono dimensioni aggiuntive ma non quelle predefinite.

Ancora meglio se usi $default_image_sizes = get_intermediate_image_sizes();
dato che c'è una dimensione medium_large
da WP 4.4.

Questa risposta funziona perfettamente, ma è stata sostituita dall'ultimo commento per WordPress 5.3 e versioni successive: https://developer.wordpress.org/reference/functions/wp_get_registered_image_subsizes/

Se hai solo bisogno dei nomi di tutte le dimensioni delle immagini, puoi utilizzare get_intermediate_image_sizes:
<pre>
<?php print_r(get_intermediate_image_sizes()); ?>
</pre>

Da WP 5.3 è sufficiente utilizzare questa funzione:
wp_get_registered_image_subsizes();
Documentazione: https://developer.wordpress.org/reference/functions/wp_get_registered_image_subsizes/

La risposta più breve e l'unica corretta qui, ma perché così in basso nei ranking.

L'unica risposta corretta. Probabilmente basso ranking perché esiste solo da WP 5.3, che al momento della domanda dell'OP non era disponibile. Tuttavia, questa dovrebbe essere l'unica risposta accettata, poiché tutto il resto è il solito "butta dentro del codice spazzatura da SO" - upvotato per farlo salire.

Se l'altra risposta non ha funzionato, utilizza questo codice, in modo che venga eseguito dopo l'inizializzazione di WordPress.
add_action('init', 'get_all_image_sizes');
function get_all_image_sizes(){
global $_wp_additional_image_sizes;
print '<pre>';
print_r( $_wp_additional_image_sizes );
print '</pre>';
}

Dalla versione di WP 4.7 puoi utilizzare wp_get_additional_image_sizes() per ottenere le dimensioni aggiuntive delle immagini registrate (escluse le dimensioni predefinite aggiunte da WP).
Dalla versione di WP 5.3 puoi utilizzare wp_get_registered_image_subsizes() per ottenere tutte le dimensioni delle immagini registrate.

Utilizza le seguenti funzioni:
get_intermediate_image_sizes(); // ottiene tutti i nomi delle dimensioni delle immagini.
wp_get_additional_image_sizes(); // ottiene tutti i dati aggiuntivi delle dimensioni delle immagini.
wp_get_registered_image_subsizes(); // ottiene tutti i dati delle dimensioni delle immagini.

So un po' in ritardo alla festa, ma ecco il mio modo per visualizzare tutte le dimensioni delle immagini nell'admin
/**
* Metabox con tutte le dimensioni delle immagini nell'Admin
*/
function sixtyseven_register_imagesizes_dashboard_widget() {
global $wp_meta_boxes;
wp_add_dashboard_widget(
'imagesizes_dashboard_widget',
'Dimensioni immagini registrate',
'sixtyseven_imagesizes_dashboard_widget_display'
);
$dashboard = $wp_meta_boxes['dashboard']['normal']['core'];
$new_widget = array( 'imagesizes_dashboard_widget' => $dashboard['imagesizes_dashboard_widget'] );
unset( $dashboard['imagesizes_dashboard_widget'] );
$sorted_dashboard = array_merge( $new_widget, $dashboard );
$wp_meta_boxes['dashboard']['normal']['core'] = $sorted_dashboard;
}
add_action( 'wp_dashboard_setup', 'sixtyseven_register_imagesizes_dashboard_widget' );
function sixtyseven_imagesizes_dashboard_widget_display() {
$sizes = wp_get_registered_image_subsizes();
echo '<ul>';
foreach($sizes as $name => $values){
echo '<li>';
echo '<strong>'.$name.':</strong> ';
echo 'larghezza: '.$values['width'].'px, ';
echo 'altezza: '.$values['height'].'px';
if($values['crop'] === true){
echo ', ritagliata';
}
echo '</li>';
}
echo '</ul>';
}
Spero sia utile.
