Чиним лайтбокс на сайте

От:

Часть 1. История вопроса

Было: Картинки в старых статьях открывались красиво, то есть всплывали отдельным окном, а в новых статьях этот механизм не работает.
Причина: Старый плагин WP JQuery Lightbox умер (вероятно не совместим с новым PHP). Новый Simple Lightbox не видел картинки, потому что у них не было правильных ссылок.

Термины:

  • Лайтбокс (Lightbox) — это когда кликаешь на картинку, она плавно всплывает, фон темнеет
  • Mixed Content — когда сайт на https://, а картинки грузятся по http:// (браузер блокирует)
  • Сниппет (Snippet) — кусочек PHP-кода, который делает одну задачу и отключается

Часть 2. Схема: как картинка попадает в лайтбокс

Если картинка не открывается в лайтбоксе, стоит проверить, есть ли вокруг неё ссылка <a href=»…»> в HTML-коде статьи.


Часть 3. Где в редакторе WordPress прячется «Ссылка на медиафайл»

В новом редакторе (Gutenberg / Блочный редактор):

ШагЧто делатьГде искать
1Нажимаем на картинкуОна выделится голубой рамкой
2Смотрим на верхнюю панель инструментовТам появится иконка «цепочка» или выпадающий список
3Выбираем «Медиафайл» (Media File)Или «Ссылка на файл»
4Обновляем статьюГотово!

В старом редакторе (Classic Editor):

  • Нажать на картинку
  • Нажать иконку «Карандаш» (Изменить)
  • В поле «Ссылка на» выбрать «Файл медиа»
  • Обновить

Часть 4. Замена старого плагина на новый

«WP JQuery Lightbox» перестал работать возможно из-за новых версий PHP или WordPress.

  1. Деактивируем старый плагин (пока не удаляем)
  2. Устанавливаем новый: Simple Lightbox

Плагины  — Добавить новый  — поиск «Simple Lightbox»

Установить  — Активировать

  1. Проверяем настройки:

Плагины – Установленные – Simple Lightbox

Плагин должен быть включён для записей и страниц

Simple Lightbox сам подхватывает все картинки, которые уже имеют правильные ссылки. Новые картинки нужно вставлять с опцией «Медиафайл» (см. Часть 3).


Часть 5. Исправляем ссылки на картинки

Проблема: При переводе сайта на протокол https, часть материала, в том числе изображения остались с http

В консоли браузера (F12) были красные ошибки «Mixed Content»

Лечение через плагин Better Search Replace:

ШагДействие
1Установить плагин Better Search Replace
2Инструменты → Better Search Replace
3Поиск: https://masterf1.ru (или старый адрес хостинга)
4Замена: https://masterf1.ru
5Выбрать все таблицы (или хотя бы wp_posts)
6Сначала нажать «Выполнить пробный запуск» — проверить, сколько замен
7Если всё ок — снять галочку «пробный запуск» и выполнить замену
8Повторить для http://www.masterf1.ru, http://a0372646.xsph.ru

Результат: 5200 замен! Все ссылки на картинки стали https.


Часть 6. Автоматическое исправление изображений во всех статьях

Проблема: Даже после замены протоколов, в новых статьях у картинок не было ссылок. Лайтбокс не работал.

Решение: Разовый PHP-скрипт, который пробежит по всем статьям и обернёт картинки в ссылки.

Для решения подойдёт плагин для сниппетов, например WPCode:

  1. Устанавливаем плагин WPCode 
  2. Добавляем новый скрипт: WPCode — Add Snippet  — Add Your Custom Code
  1. Название: «Разовый фикс картинок»
  2. Тип кода: PHP Snippet
  1. Вставляем код

6. Указываем расположение: «Только администратор»

  1. Активируем код
  1. Заходим в админку — при запуске страницы скрипт автоматически переберёт все страницы и выведет уведомление «Обработано статей: XXX»
  2. Отключаем сниппет! Чтобы не грузить систему

Часть 7. Используемые плагины

Simple LightboxПлагин для эффекта всплывающей картинки
Better Search ReplaceПлагин для массовой замены текста в базе данных
WPCodeМенеджер сниппетов (кусочков кода), которые можно включать/выключать

Комментарии закрыты