logo помогаю бизнесу зарабатывать больше.
Связаться
Введите название услуги:

Добавление произвольного размера изображения в медиа-галерею WordPress

22 апреля 2021 в 19:01 Блог веб-разработчика

Пользовательские размеры изображений в WordPress относительно просты в настройке, особенно в версии WordPress 3.3, и они приносят значительные преимущества при экономии времени. Вместо редактирования размера изображения и загрузки вы можете позволить WordPress позаботиться о генерации размера изображения.

Определите пользовательские размеры изображения

Первое, что нам нужно сделать, это сообщить WordPress, что мы хотим использовать нестандартные размеры изображений. Посмотрите на приведенный ниже код и проверьте, есть ли он в файле function.php вашей текущей темы. Если нет, продолжайте и добавьте его.

<?php
if ( function_exists( 'add_theme_support' ) ){
add_theme_support( 'post-thumbnails' ); //add thumbnails
set_post_thumbnail_size( 220, 9999 ); // set default thumbnails
}
if ( function_exists('add_image_size') ){
add_image_size( 'homepage-image', 423, 268, true ); // custom homepage featured image
?>

Приведенный выше код проверяет, существует ли основная функция WordPress add_theme_support и существует ли, чтобы добавить возможность использовать миниатюры сообщений и установить глобальный размер миниатюр сообщений по умолчанию.

После того, как мы добавим поддержку темы для миниатюр и включим размер миниатюр публикации по умолчанию, нам нужно добавить пользовательские размеры изображений, которые мы хотим использовать. Для этого мы проверяем, существует ли основная функция WordPress add_image_size и добавляет ли она размер изображения. Первый параметр – это имя, присвоенное пользовательскому размеру изображения, в данном случае мы используем изображение домашней страницы. Второй и третий параметры – это ширина и высота (в пикселях) соответственно. Последний – это логический параметр, который мягко обрезает (false) или жестко (true) пользовательское изображение.

Вставьте произвольный размер изображения в медиа-галерею WordPress 3.3+

Я управляю несколькими крупными установками WordPress Multisite с сотнями пользователей, и я хочу убедиться, что они вставляют изображения правильного размера. Самый простой способ сделать это – дать им возможность выбрать нужный размер изображения. Выпуск WordPress 3.3 значительно упростил добавление пользовательских размеров изображений в галерею мультимедиа по сравнению с тем, как это было раньше. Теперь мы можем использовать фильтр image_size_names_choose.

<?php	
add_filter( 'image_size_names_choose', 'jss_custom_image_sizes' );
function jss_custom_image_sizes( $sizes ){
	$custom_sizes = array(
		'homepage-image'		=>		'Homepage Image(s)'
	);
	return array_merge( $sizes, $custom_sizes );
}
?>

Вставьте произвольный размер изображения в старую медиа-галерею WordPress

Приведенный ниже код делает то же самое в старых версиях WordPress (до 3.3), но он значительно длиннее и хакерский.

<?php
add_filter('attachment_fields_to_edit', 'my_attachment_fields_to_edit_filter', 100, 2);

function my_attachment_fields_to_edit_filter($form_fields, $post) {
  if (!array_key_exists('image-size', $form_fields)) return $form_fields;

  global $_wp_additional_image_sizes;
  foreach($_wp_additional_image_sizes as $size => $properties) {
    if ($size == 'post-thumbnail') continue;

    $label = ucwords(str_replace('-', ' ', $size));
    $cssID = "image-size-{$size}-{$post->ID}";

    $downsize = image_downsize($post->ID, $size);
    $enabled = $downsize[3];

    $html = '<input type="radio" ' . disabled($enabled, false, false) . 'name="attachments[' . $post->ID. '][image-size]" id="' . $cssID . '" value="' . $size .'">';
    $html .= '<label for="'. $cssID . '">' . $label . '</label>';
    if ($enabled) $html .= ' <label for="' . $cssID . '" class="help">(' . $downsize[1] . '&nbsp;×&nbsp;' . $downsize[2] . ')</label>';
    $form_fields['image-size']['html'] .= '<div class="image-size-item">' . $html . '</div>';
  }

  return $form_fields;
}
?>

 

Похожие статьи

Оставить заявку
По любым вопросам пишите мне в мессенджеры .
Написать в WhatsApp
+7 (925) 444-48-89
Написать в Telegram
@max_webs
Ваша цена
Предложите свою цена за товар или услугу. Пишите мне в мессенджеры или оставьте заявку в данной форме.
Написать в WhatsApp
+7 (925) 444-48-89
Написать в Telegram
@max_webs
[contact-form-7 id="22192" title="Универсальная форма"]
[contact-form-7 id="114828" title="Рассчитать стоимость"]