Вы можете получить этот результат, заставив WordPress не отображать опцию полного размера. Функция, которая создает переключатели размера, находится в wp-admin/includes/media.php
и называется image_size_input_fields
.
Для этой функции, о которой я знаю, нет фильтра или ловушки действий, но функция, которая ее вызывает (image_attachment_fields_to_edit
), имеет ловушку фильтра attachment_fields_to_edit
.
Таким образом, мы можем использовать фильтр-фильтр для переопределения этих двух функций нашими собственными, которые будут очень незначительно изменены.
Это будет работать в стандартном файле functions.php, или, я полагаю, вы можете включить его в плагин.
Сначала добавьте новый фильтр:
add_filter('attachment_fields_to_edit', 'MY_image_attachment_fields_to_edit', 11, 2);
Далее мы создадим две наши функции. Для этого случая я добавил префикс MY_
:
function MY_image_attachment_fields_to_edit($form_fields, $post) {
if ( substr($post->post_mime_type, 0, 5) == 'image' ) {
$alt = get_post_meta($post->ID, '_wp_attachment_image_alt', true);
if ( empty($alt) )
$alt = '';
$form_fields['post_title']['required'] = true;
$form_fields['image_alt'] = array(
'value' => $alt,
'label' => __('Alternate text'),
'helps' => __('Alt text for the image, e.g. “The Mona Lisa”')
);
$form_fields['align'] = array(
'label' => __('Alignment'),
'input' => 'html',
'html' => image_align_input_fields($post, get_option('image_default_align')),
);
$form_fields['image-size'] = MY_image_size_input_fields( $post, get_option('image_default_size', 'medium') );
} else {
unset( $form_fields['image_alt'] );
}
return $form_fields;
}
Единственное, что здесь изменилось по сравнению с обычной функцией WordPress, это то, что мы вызываем MY_image_size_input_fields
вместо image_size_input_fields
.
Теперь функция, которая выполняет фактическое сокрытие:
<code>function MY_image_size_input_fields( $post, $check = '' ) {
// get a list of the actual pixel dimensions of each possible intermediate version of this image
/* $size_names = array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full size')); */
$size_names = array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'));
if ( empty($check) )
$check = get_user_setting('imgsize', 'medium');
echo '<pre>'; print_r($check); echo '
';
foreach ($ size_names как $ size => $ label) {
$ downsize = image_downsize ($ post-> ID, $ size);
$ check = '';
// этот размер можно выбрать?
$ enabled = ($ downsize [3] || 'large' == $ size);
$ css_id = "image-size - {$ size} - {$ post-> ID}";
// если это размер по умолчанию, но он недоступен, не выбирайте его
if ($ size == $ check) {
если ($ включено)
$ проверено = "проверено = 'проверено'";
еще
$ check = '';
} elseif (! $ check && $ enabled && 'thumbnail'! = $ size) {
// если $ check не включен, по умолчанию используется первый доступный размер, который превосходит миниатюру
$ check = $ size;
$ проверено = "проверено = 'проверено'";
}
$ html = "
ID] [image-size]' id = '{$ css_id}' value = '{$ size}' $ checked />";
$ html. = "";
// показывать только размеры, если этот выбор доступен
если ($ включено)
$ html. = "";
$ html. = '
';
$ out [] = $ html;
}
возвращаемый массив (
'label' => __ ('Size'),
'input' => 'html',
'html' => join ("\ n", $ out),
);
}
В этой последней функции меняются только две вещи. В верхней части мы избавляемся от ссылки на «Full Size» в определении массива $ size_names. Затем строка, которая говорит $enabled = ( $downsize[3] || 'large' == $size );
, мы изменили. Мы просто заменили 'full' == $size
на 'large' == $size
.
Вот скриншот с результатом:
![alt text](https://images.nerdstargamer.net/full-size-gone.png)