¿Qué función puedo usar en un complemento para obtener las dimensiones de cada tamaño de imagen (preferiblemente en una matriz) que se define en un tema secundario?
Solo para aclarar no estoy preguntando cómo crear un nuevo tamaño de imagen.
¿Qué función puedo usar en un complemento para obtener las dimensiones de cada tamaño de imagen (preferiblemente en una matriz) que se define en un tema secundario?
Solo para aclarar no estoy preguntando cómo crear un nuevo tamaño de imagen.
Lo encontré aquí . La respuesta es:
global $_wp_additional_image_sizes;
print '<pre>';
print_r( $_wp_additional_image_sizes );
print '</pre>';
Si solo necesita los nombres de todos los tamaños de imagen, puede usar get_intermediate_image_sizes :
<pre>
<?php print_r(get_intermediate_image_sizes()); ?>
</pre>
El núcleo de WordPress no tiene un método nativo para obtener una imagen intermedia tamaños (es decir, ancho y alto), pero la siguiente función de ayuda obtendrá todos los tamaños de imagen registrados junto con sus dimensiones:
/**
* Get all the registered image sizes along with their dimensions
*
* @global array $_wp_additional_image_sizes
*
* @link http://core.trac.wordpress.org/ticket/18947 Reference ticket
*
* @return array $image_sizes The image sizes
*/
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;
}
Lo que generará resultados similares 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] =>
)
)
Si la otra respuesta no funcionó, usa este código, por lo que se ejecutará después de que se inicialice 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>';
}
Lea otras preguntas en las etiquetas image-size