
Плагин плавного увеличения изображений для CMS WordPress, который я разрабатывал для себя. Данный движок из коробки предлагает открывать изображения на отдельной странице, но что более печально — на этой вкладке, где он читает статью.
Каких-то вменяемых плагинов для плавного увеличения изображений в модальном окне найти не удалось. Есть один, но в новых версиях PHP он начал выдавать ошибки.
Это простой JavaScript без необходимости что-то устанавливать из репозитория WordPress. Никаких дополнительных манипуляций с изображениями во время публикации в редакторе делать не нужно. Плагин Состоит из готового ядра Highslide.js и небольшого обработчика для автоматизации CMS WordPress.
Ядро Highslide.js
Это древнейший скрипт. Один из первых по функционалу совмещения модальных окон и изображений. В далеких нулевых активно использовал его на своих простеньких сайтах.
Движок Highslide включает в себя около 20 различных видов плавного увеличения изображений, но в данном решении мы будем использовать лишь одну из его библиотек — highslide-with-gallery.js. Поэтому дальнейшее описание будет именно об этой конкретной библиотеке.
Описание — JavaScript

На скриншоте выше пример изображения, которое будет увеличено в модальном окне при клике на него. Базовый код для ссылки выглядит следующим образом:
<a href="https://someurl.domain" class="highslide" onclick="return hs.expand(this)"><img src="https://someimageurl.domain"></a>
Как видно, это обычная ссылка с изображением вместо текста, которой добавили два параметра: CLASS и ONCLICK.
Отсюда можно сделать вывод, что для использования данного плагина на CMS WordPress, нам нужно получить все подобные ссылки, показанные на скриншоте и добавить к ним два этих параметра.
Интересующие нас изображения в постах WordPress заворачиваются в контейнер FIGURE и далее уже по схеме A > IMG. Получаем все такие блоки на странице, прогоняем через цикл и вешаем на них наши параметры следующим кодом:
// HIGHSLIDE IMAGES
var $ = jQuery;
// HIGHSLIDE INITIALISATION
hs.graphicsDir = '/wp-content/themes/{YOUR_THEME/PLUGIN_FOLDER/}/highslide/graphics/';
hs.align = 'center';
hs.transitions = ['expand', 'crossfade'];
hs.wrapperClassName = 'dark borderless floating-caption';
hs.fadeInOut = true;
hs.dimmingOpacity = .75;
// Add the controlbar
if (hs.addSlideshow) hs.addSlideshow({
//slideshowGroup: 'group1',
interval: 5000,
repeat: false,
useControls: true,
fixedControls: 'fit',
overlayOptions: {
opacity: .6,
position: 'bottom center',
hideOnMouseOut: true
}
});
// WORDPRESS ADAPTATION
// Находим все ссылки в контейнере <figure>
var figure = document.querySelectorAll('figure a');
// Прогоняем их в цикле и вешаем инициализацию ядра highslide
for(let i = 0; i < figure.length; i++){
$(figure[i]).addClass('highslide').attr('onclick', 'return hs.expand(this)');
}
Нас интересует раздел WORDPRESS ADAPTATION. Все что выше — это API для получения из огромного ядра Higslade конкретных значений для нашей библиотеки. На них не стоит обращать внимание за исключением строки hs.graphicsDir.
В нее нужно прописать свой путь к папке с изображениями (иконки для галереи), заменив {YOUR_THEME/PLUGIN_FOLDER/} на свои значения:
hs.graphicsDir = '/wp-content/themes/{YOUR_THEME/PLUGIN_FOLDER/}/highslide/graphics/'
Аналогичные настройки нужно сделать и в другом файле. В папке Highslide найти файл highslide-with-gallery.js. В нем найти строку graphicsDir и также прописать свой путь. Пример на скриншоте ниже.

Подключение к WordPress
- Скачать в конце статьи архив с плагином.
- Поместить папку highslide в папку с темой (например в THEME/js/)
- Отдельно подключить скрипт инициализации выше. Для этого обычно используется отдельный файл с небольшими скриптами. Мой пример — жми.
- По желанию подключить все файлы через файл functions.php или прописать в HEAD следующее:
- highslide/highslide-with-gallery.js
- highslide/highslide.css
- js/script.js — или дописать в свой аналог
Подключение — итог
- Поправить путь к папке с картинками в скрипте с инициализацией (см. выше)
- Поправить тот же путь в файле ядра (см. выше)
- Подключить два (или три) файла в functions.php или прописать в HEAD
Баги и фиксы на будущее
Это косяк и недоработка со стороны разработчика ядра. При клике изображение увеличивается в модальном окне, но его размеры искажаются и оно, фактически, не увеличивается, а сильно сжимается.
Пока что решил проблему глобальным правилом для всех изображений и отложил в долгий ящик:
img{
max-width: 100%;
}