Я создал Плагин WordPress что вставляет width
а также height
атрибуты для всех изображений, например:
<img src="https://placehold.it/100x50">
- to -
<img src="https://placehold.it/100x50" width="100" height="50">
Тем не менее, когда есть изображения, которые имеют пустые размеры (для обоих width
а также height
), мой код не ловит его, например:
<img src="https://placehold.it/100x50" width="" height="">
Однако, когда есть только одно пустое измерение, мой плагин ловит его. Следующие два примера будут работать:
<img src="https://placehold.it/100x50" width="">
<img src="https://placehold.it/100x50" height="">
Вот исходный код. По строке 43 (#), это логика, которую я использую, чтобы определить, отсутствует ли изображение width
/height
:
if ( ! in_array( 'width', $img[1] ) || ! in_array( 'height', $img[1] ) ) {
Я пробовал следующую обновленную логику, но она не работает:
if ( # Images with no width/height
! in_array( 'width', $img[1] ) || ! in_array( 'height', $img[1] ) ||
# Images with blank width/height
( in_array( 'width', $img[1] ) && in_array( '""', $img[1] ) ) || ( in_array( 'height', $img[1] ) && in_array( '""', $img[1] ) )
) {
Я в правильном районе? Что я делаю не так в своей логике?
Не было бы width=""
часть <img ... width="">
результат в строках width
а также ""
как элементы для $img
? Что является совпадением, и непустым в этом, так что ! in_array
вероятно, здесь не так.
Ваш код был бы выполнен, если бы вообще не было атрибутов width / height.
Просто проверьте конкретные значения соответствия для всех ширин и высот, и реагируйте так же, как в вашем коде, если он оценивается как строка ""
edit: Ваша обновленная логика предполагала, что две захваченные группы представляют собой одну строку, но это не так. Так что вместо in_array( 'width=""', $img[1] )
вам нужно (in_array( 'width', $img[1] ) and in_array( '""', $img[1] ))
плюс то же самое по высоте соответственно.
Я ищу значение в 1
Индекс, где я должен был посмотреть в 2
индекс, который содержит значения:
if ( # Images with no width/height
! in_array( 'width', $img[1] ) || ! in_array( 'height', $img[1] ) ||
# Images with blank width/height
( in_array( 'width', $img[1] ) && in_array( '""', $img[2] ) ) || ( in_array( 'height', $img[1] ) && in_array( '""', $img[2] ) )
) {