wp_get_attachment_image () не работа при попытке добавить атрибуты ширины и высоты

Я использую wp_get_attachment_image() попытаться произвести img тег с width и height атрибуты.

Вот мой код:

$thumb_src = wp_get_attachment_image( $id, 'thumbnail', false, array('width'=> '10', 'height' => '10' ));
$thumb_output = "<li>".$thumb_src."</li>";

Я ожидал, что это произведет:

<li><img width="10" height="10" src="http://..../wp-content/uploads/2011/01/pic-150x150.jpg" class="attachment-thumbnail" alt="pic" width="10" height="10" /></li>

Вместо этого это производит:

<li><img width="150" height="150" src="http://..../wp-content/uploads/2011/01/pic-150x150.jpg" class="attachment-thumbnail" alt="pic" width="10" height="10" /></li>

Большое спасибо за любую справку любой может дать. Я попробовал его другими атрибутами, как style атрибут и тег style появляются как ожидалось. Я предполагаю, что мог использовать тег style для установки размеров тот путь, но я не понимаю, почему метод ширины/высоты не работает!

1
16.02.2020, 00:01
1 ответ

Как записано в документации, нет никаких атрибутов width и height в четвертом параметре функции. То, что Вы могли бы хотеть сделать, является этим:

wp_get_attachment_image(
    $id,
    array( 10, 10 )
);

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

add_action( 'after_setup_theme', 'wpse_132171_create_image_size' );
function wpse_132171_create_image_size() {

    add_theme_support( 'post-thumbnails' );
    add_image_size( 'my_size', 10, 10 ); 
}

С этим можно обратиться к тому размеру кратким заголовком my_size в wp_get_attachment_image():

wp_get_attachment_image( $id, 'my_size' );

Для этого решения необходимо восстановить миниатюры, если у Вас есть существующие изображения с помощью плагина как» Миниатюра Ajax, Восстанавливают «

Примечание: Когда Вы используете array как 2-й аргумент, WordPress будет использовать attachment-{$val1}x{$val2} (строка, созданная из значений массива) как class. Это поведение повреждается, как только Вы используете 4-й аргумент (array attributes) и добавьте пользовательское class введите там. Пользовательское class переопределит то, что поставляется ядром. Это могло считаться ошибкой.

2
19.02.2020, 22:54
  • 1
    спасибо за Вашу справку. Где это говорит, что нет никакой ширины атрибутов и высоты? Все я вижу, что, поскольку это говорит, The $attr argument is merged with WordPress's default attributes and passed through the wp_get_attachment_image_attributes filter. но я не вижу, где я могу узнать больше об этом. Это не дает 'ширину' или 'высоту' в массиве в качестве примера, но это также не дает 'стиль' и добавляя, что это хорошо работает. Я пишу плагин, и я действительно знал о add_image_size() функционируйте, но размер миниатюр собирается коснуться установки пользовательских наборов в панели администрации... –  Sarah 02.02.2014, 17:09
  • 2
    ..., которым я подразумеваю, что они вводят вход для максимальной ширины, 'например, 75 пикселей, и затем я планировал масштабировать миниатюру по умолчанию к тому размеру. Я не думал add_image_size() работал бы хорошо с этим, потому что каждый раз они изменяют входное число, миниатюры должны были бы быть восстановлены. Я думал, что мог бы также использовать размер миниатюры по умолчанию, как это уже там, и размеры изображения будут относительно небольшими, так не должен влиять на загрузку страницы и т.д. слишком много. Еще раз спасибо за Вашу справку я думаю, что буду использовать первое решение, которое Вы дали Странному :) –  Sarah 02.02.2014, 17:12
  • 3
    Вы правы, документация немного неясна о возможных ключах того атрибута массивы». Слияние «является, возможно, неправильным термином там. –  David 02.02.2014, 18:39

Теги

Похожие вопросы