Как получить список всех возможных размеров миниатюр, установленных в теме
Какую функцию можно использовать в плагине для получения размеров всех изображений (предпочтительно в массиве), которые определены в дочерней теме?
Для ясности: я не спрашиваю о том, как создать новый размер изображения.

Нашел здесь. Ответ:
global $_wp_additional_image_sizes;
print '<pre>';
print_r( $_wp_additional_image_sizes );
print '</pre>';

Добавление этого в начало файла functions.php
не сработает, но если поместить это в любую из ваших функций в этом файле, то должно заработать.

Здесь перечислены только дополнительные размеры, но не такие размеры как "large"

По состоянию на 2023 год это правильный ответ: https://wordpress.stackexchange.com/questions/33532/how-to-get-a-list-of-all-the-possible-thumbnail-sizes-set-within-a-theme#answer-410707

В WordPress ядре нет встроенного метода для получения промежуточных размеров изображений (т.е. ширины и высоты), но следующая вспомогательная функция получит все зарегистрированные размеры изображений вместе с их размерами:
/**
* Получить все зарегистрированные размеры изображений вместе с их размерами
*
* @global array $_wp_additional_image_sizes
*
* @link http://core.trac.wordpress.org/ticket/18947 Ссылка на тикет
*
* @return array $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;
}
Что выведет результат, подобный этому:
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 за более полный ответ. Другие возвращают дополнительные размеры, но не стандартные.

Еще лучше использовать $default_image_sizes = get_intermediate_image_sizes();
, так как начиная с WP 4.4 появился размер medium_large
.

Начиная с версии 5.3, существует функция wp_get_registered_image_subsizes()

Это решение работает отлично, но для WordPress 5.3 и выше его заменил последний комментарий: https://developer.wordpress.org/reference/functions/wp_get_registered_image_subsizes/

Если вам нужны только названия всех размеров изображений, вы можете использовать get_intermediate_image_sizes:
<pre>
<?php print_r(get_intermediate_image_sizes()); ?>
</pre>

Начиная с версии WP 5.3, достаточно использовать эту функцию:
wp_get_registered_image_subsizes();
Документация: https://developer.wordpress.org/reference/functions/wp_get_registered_image_subsizes/

Самый короткий и единственно правильный ответ, но почему так низко в рейтинге.

Единственный правильный ответ. Вероятно, низкий рейтинг из-за того, что он появился только в WP 5.3, которого на момент вопроса OP ещё не было. Тем не менее, это должен быть единственный принятый ответ, так как все остальное — типичный "мусорный код с SO", который накручивают голосами, чтобы поднять.

Если предыдущий ответ не сработал, используйте этот код — он выполнится после инициализации 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>';
}

Начиная с WordPress 4.7, вы можете использовать функцию wp_get_additional_image_sizes() для получения зарегистрированных дополнительных размеров изображений (исключая стандартные размеры изображений, добавленные WordPress).
Начиная с WordPress 5.3, вы можете использовать функцию wp_get_registered_image_subsizes() для получения всех зарегистрированных размеров изображений.

Используйте следующие функции:
get_intermediate_image_sizes(); // получить все названия размеров изображений.
wp_get_additional_image_sizes(); // получить все дополнительные данные о размерах изображений.
wp_get_registered_image_subsizes(); // получить все данные о размерах изображений.

Я немного опоздал на вечеринку, но вот мой способ отображения всех размеров изображений в админке
/**
* Метабокс со всеми размерами изображений в админке
*/
function sixtyseven_register_imagesizes_dashboard_widget() {
global $wp_meta_boxes;
wp_add_dashboard_widget(
'imagesizes_dashboard_widget',
'Зарегистрированные размеры изображений',
'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 'ширина: '.$values['width'].'px, ';
echo 'высота: '.$values['height'].'px';
if($values['crop'] === true){
echo ', обрезано';
}
echo '</li>';
}
echo '</ul>';
}
Надеюсь, это поможет.
