Шаг 1. Загрузите новый размер после родительского
Вам необходимо убедиться, что вы переопределяете размер изображения после его объявления родителем. Что я имею в виду?
При вызове add_image_size()
все, что он делает, - это принимает параметры и сохраняет их в глобале с именем $_wp_additional_image_sizes
, который имеет ключ по имени, которое вы ему даете. Вы можете перезаписать параметры, если у вас есть ключ (запомните это позже).
Давайте пройдемся по последовательности загрузки. WordPress загружает плагины, затем дочернюю тему, а затем родительскую тему. Подумай об этом. Вы хотите изменить размер изображения по умолчанию, создаваемого родителем. Верно? Это означает: родительская тема должна быть запущена, прежде чем вы попытаетесь ее изменить.
Проверьте свою дочернюю тему и убедитесь, что вы переопределяете размер изображения после добавления его родительской темой.
Шаг 2. Удалять его не нужно
Размер изображения убирать не нужно. Вместо этого просто запустите add_image_size
в таком виде.
Почему? Помните, что я сказал выше, при запуске add_image_size
WordPress перезаписывает то, что хранится под именем, которое вы называете размером изображения. Когда вы вызываете его в своей дочерней теме, она перезаписывает то, что родительская тема хранила в глобальном $_wp_additional_image_sizes
.
Чтобы помочь вам визуализировать это, вот код из ядра WordPress:
function add_image_size( $name, $width = 0, $height = 0, $crop = false ) {
global $_wp_additional_image_sizes;
$_wp_additional_image_sizes[ $name ] = array(
'width' => absint( $width ),
'height' => absint( $height ),
'crop' => $crop,
);
}
Вы видите, как он просто перезаписывается, если имя уже существует? В противном случае он добавляет его как новый размер.
Когда вы хотите удалить размер изображения с помощью remove_image_size()
?
Сделайте это, если вы не переопределяете размер. Вы просто хотите полностью его удалить.
Шаг 3. Необходимо восстановить существующие изображения
При добавлении нового размера изображения существующие изображения в библиотеке мультимедиа и в wp-content/uploads
не создают новые размеры автоматически. Все новые добавленные изображения будут сохранены с новым размером.
Что я имею в виду?
Когда объявляется новый размер изображения, все новые изображения сохраняются в папке uploads
с каждым из заявленных размеров. Откройте папку и посмотрите. Вы увидите исходный файл изображения, а затем дополнительные файлы с добавлением суффикса каждого размера. WordPress заботится об изменении размера, а затем сохраняет каждый размер изображения в папке Uploads
.
Как восстановить существующие изображения
Хорошо, как восстановить все существующие изображения, чтобы получить новый размер? Я использую плагин Regenerate Thumbnails от Viper. Он пройдется по всем изображениям, а затем создаст новые размеры.
Как проверить новый размер
Как вы проверяете, что ваш новый размер зарегистрирован?
Регистрация хранится в глобальной переменной $_wp_additional_image_sizes
и привязана к имени, которое вы ей дали, то есть 'sela-grid-thumbnail'
. Чтобы узнать, зарегистрирован ли он, вы можете сделать это:
add_action('loop_start', 'check_if_image_size_is_registered');
/**
* Check if the image size has been registered when the
* Loop first starts.
*
* @since 1.0.0
*
* @return void
*/
function check_if_image_size_is_registered() {
global $_wp_additional_image_sizes;
if ( ! isset( $_wp_additional_image_sizes['sela-grid-thumbnail'] ) ){
die('nope, not registered');
}
echo '<pre>';
var_dump( $_wp_additional_image_sizes['sela-grid-thumbnail'] );
echo '</pre>';
die('yes, it is registered');
}
Если он был зарегистрирован, размеры выводятся в браузере. Вы можете проверить их, чтобы убедиться, что они того размера, который вам нужен, то есть 242 x 242.
Это повторило размер 242 x 242?
- Если да, то размер вашего изображения зарегистрирован и вы все сделали правильно.
- Если нет, то вам нужно вернуться и проверить порядок, в котором вы сделали
add_image_size()
.
Что делать, если он зарегистрирован, но изображения не отформатированы?
Вы проверили выше, и размер изображения правильно зарегистрирован. Но что делать, если размер изображения, который вы видите, в браузере не равен 242x242?
Это другая проблема. Возможно:
- Размер изображения не указан при рендеринге в браузере. Например, допустим, вы используете
the_post_thumbnail()
. Первый параметр - это размер, который будет 'sela-grid-thumbnail'
. Проверьте код, в который вы звоните, чтобы отобразить миниатюру сообщения. Убедитесь, что размер указан.
- CSS переопределяет размер. Откройте Инструменты разработчика в Chrome или Firefox и убедитесь, что к URL-адресу изображения добавлен суффикс
-242x242.jpg
.
Как WordPress отображает изображение
Когда вы визуализируете изображение и устанавливаете для него размер 'sela-grid-thumbnail'
, WordPress извлекает соответствующий файл из папки uploads
. Скажем, изображение my-cool-background.jpg
. WordPress захватит my-cool-background-242x242.jpg
.
Вы можете проверить это, открыв Инструменты разработчика в Chrome или Firefox. Убедитесь, что в браузере находится правильный файл изображения, т. Е. Он имеет суффикс -242x242.jpg
.
person
hellofromTonya
schedule
24.11.2016