Setka Editor и WordPress Технические проблемы при установке и использовании плагина WordPress

Технические проблемы при установке и использовании плагина WordPress

Содержание

Устаревшая версия PHP

Плагин загружен не полностью

Размер плагина превышает максимальный разрешенный для загрузки

Не открывается одна из страниц настроек плагина

Заблокированный wp-admin 

Установлен плагин Lockdown WP Admin

Не подключаются стили и шрифты

Нет вкладки Setka Editor на странице создания новой записи

Редактор не запускается. Ошибка "Mixed Content" в консоли браузера

Вкладка Setka Editor пропала из старых постов

Как изменить редактор поста по умолчанию

Как составить диагностический отчёт для службы поддержки

 

Устаревшая версия PHP

Что вы видите

 

obsolete_php.png

 

Причина

Старая версия PHP, которая не поддерживает новые возможности языка программирования, используемые в одной из библиотек.

 

Решение

Обновите PHP. Сейчас минимальная допустимая версия для нашего плагина — PHP 7.1.3.

Версия 5.5 слишком старая, она вышла в 2013 году и критические уязвимости в ней не закрываются. Посмотреть жизненный цикл версий можно здесь

Обновить версию PHP у себя на сервере, как правило, можно в панели управления хостингом – Cpanel, ISPManager и др. В большинстве случаев процесс обновления  занимает не более 5 минут и не влечет за собой сбоев в работе сайта. При необходимости вы всегда можете вернуться  к прежней версии.

Ниже доступны инструкции для обновления версии PHP на наиболее крупных хостинг-площадках WordPress:

BluehostDreamhostSiteground, IPageHostgator, 1&1, Ehost, MediaTemple, GoDaddy, Pagely.

Если вашего провайдера нет в этом списке, пожалуйста, обратитесь в службу поддержки своего хостинга или к вашему системному администратору.

После обновления PHP деактивируйте и снова активируйте плагин Setka Editor.

 

Плагин загружен не полностью 

Когда плагин загружен не полностью (то есть когда не все файлы плагина скопированы на сервер), возникают ошибки в PHP. Такое происходит, если соединение пропало в момент ручной заливки файлов на FTP.

 

Что вы видите

В большинстве случаев вы увидите белую страницу с ошибками или без. Сообщение об ошибке можно увидеть, если включен WP_DEBUG  (без него будет отображаться белая страница) или заглянуть в error.log на сервере (полный адрес до файла зависит от конфигурации сервера) при условии, что в настройках веб-сервера включен этот лог.

Warning: include(/var/www/wordpress/htdocs/1/wp-content/plugins/setka-editor/source/Plugin.php): failed to open stream: No such file or directory in /var/www/wordpress/htdocs/1/wp-content/plugins/setka-editor/vendor/composer/ClassLoader.php on line 412

Warning: include(): Failed opening '/var/www/wordpress/htdocs/1/wp-content/plugins/setka-editor/source/Plugin.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/wordpress/htdocs/1/wp-content/plugins/setka-editor/vendor/composer/ClassLoader.php on line 412

Fatal error: Class 'Setka\Editor\Plugin' not found in /var/www/wordpress/htdocs/1/wp-content/plugins/setka-editor/plugin.php on line 30

 

Причина

Часть файлов не была загружена или некоторые файлы были удалены. Еще одна возможная причина — часть файлов имеет неправильное содержимое (например, кто-то изменил их вручную и удалил оттуда содержимое).

 

Решение

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

Если плагин не удаляется через панель управления, просто удалите папку плагина с сервера через FTP (SFTP или SSH), а затем заново загрузите последнюю версию плагина. Загрузить новую версию плагина также можно любым удобным способом — через панель управления или через FTP.

 

Размер плагина превышает максимальный разрешенный для загрузки

Screen_Shot_2017-04-14_at_17.40.23.png

 

Что вы видите

При попытке загрузить плагин через панель администратора WordPress вы видите страницу с надписью.

Важно: скриншот и текст актуальны для WordPress 4.7, в старых версиях ошибка выглядит по-другому.

Are you sure you want to do this?

Please try again.

 

Решение

Проверьте максимальный разрешенный размер файлов для загрузки. Самый простой способ сделать это — зайти на страницу "Upload New Media". В самом низу страницы будет указан максимальный допустимый размер файла. Например: "Maximum upload file size: 3 MB." (см. скриншот).

Максимальный допустимый размер файла должен быть больше, чем размер ZIP-архива с плагином.

Чтобы изменить эту настройку, обратитесь к службе поддержки хостинга и попросите увеличить размер файлов, разрешенных для загрузки (например, до 20 Мб). 

Если поддержка не понимает, что нужно сделать, или вы хотите внести изменения самостоятельно, то найдити файл php.ini и внесите два изменения. Обычно файл php.ini находится по адресу /etc/php/apache2/php.ini (но может находиться и в другом месте в зависимости от ОС сервера и его конфигурации).

Внутри файла нужно изменить две настройки upload_max_filesize и post_max_size. Они могут иметь разные значения, но post_max_size  не должна быть меньше upload_max_filesize. Можно установить любое значение, например, 1024M (гигабайт).

Важно: после внесения изменений в файл перезапустите веб-сервер или PHP-FPM (в зависимости от конфигурации сервера) для того, что бы применить новые настройки. Если все сделано верно, то на странице Upload New Media вы увидите новую цифру.

Иногда данные настройки могут быть указаны несколько раз в разных местах (например, в .htaccess файле или в других PHP-конфигурациях) и перезаписывать значения из php.ini. Также эту настройку может переопределять какой-либо из плагинов WordPress или даже тема (хотя вероятность этого крайне мала).

 

 

Не открывается одна из страниц настроек плагина

Что вы видите 

Одна из страниц настроек нашего плагина не открывается. 

 

Причина 

Такая проблема возникает при использовании HHVM и его настроек.

 

Решение 

Добавьте в конфигурацию HHVM строчку ниже.  

hhvm.libxml.ext_entity_whitelist = file,http

Более подробное описание и обсуждение проблемы вы можете прочитать здесь.

 

Заблокированный wp-admin

Что вы видите

Не доходят обновления стилей. Не появляются новые темы. Редактор перестал работать. Плагин показывает, что истекла подписка и редактор не открывается. 

 

Причина

API Setka Editor не смогло доставить обновления на сайт с обновленными CSS и JS-файлами, а также обновить информацию о продлении подписки. Это может случится по нескольким причинам:

  1. Когда API обращалось к сайту, сервер был недоступен (выключен, сильно загружен, без доступа в интернет) или неисправен.
  2. Доступ к файлу wp-admin/admin-post.php заблокирован на стороне сервера или WordPress.
  3. Используется слишком старая версия плагина, которая не поддерживается текущим API от Setka Editor.
  4. В настройках аккаунта доменное имя указано без учета http/https. Обращаем внимание, что если на вашем домене установлено защищенное соединение, URL должен быть указан как https://

 

Решение

Уточните у поддержки хостинга, не включен ли fierwall или другие ограничения на доступ к файлу wp-admin/admin-post.php. Чтобы все работало, внешние подключения к этому файлу должны быть разрешены.

Блокировать доступ могут и плагины. Например, некоторые плагины ограничивают доступ к файлам внутри папки wp-admin, если пользователь не авторизован. Один из таких плагинов — Lockdown WP Admin.

К файлу wp-admin/admin-post.php  должны быть разрешены запросы POST, GET, PUT и подобные им. Более подробно об этом файле и запросах к нему вы можете прочитать в кодексе WordPress 

Чтобы проверить возможность подключения вручную, откройте страницу http://your-domain.com/wp-admin/admin-post.php, указав свой домен. Если в веб-инспекторе на вкладке Resources в секции Request & Response будет указан Status OK, Code 200 — значит, скорее всего, все в порядке.

 

Установлен плагин Lockdown WP Admin

Это частный случай предыдущей проблемы, но рассмотрим его отдельно.

Решение

Напишите следующий код в любом другом плагине, теме или mu-плагине.


function lockdown_wp_admin_no_check_files_2016_12_29($files) {
   $files[] = 'admin-post.php';
   return $files;
}
add_filter('no_check_files', 'lockdown_wp_admin_no_check_files_2016_12_29');

Проверьте работу кода, открыв страницу example.com/wp-admin/admin-post.php. Если откроется белая страница — проблема решена. Если откроется страница 404 — код не сработал. Возможно, вы добавили его в файл, который не подключается в WordPress.

  

Не подключаются стили и шрифты

Что вы видите

При просмотре сайта вне CMS видно, что верстка постов «разваливается», а у всех элементов из Setka Editor нет стилей (пост выглядят как обычный текст).

Причина

В теме подключение всех CSS и JS файлов сделано не в общепринятой практике WorldPress, поэтому сторонние плагины не могут добавить или убрать необходимые файлы.

Решение

Есть два варианта решения проблемы:

  1. Исправьте логику подключения CSS и JS файлов внутри темы, как это рекомендуют делать разработчики WordPress. Этот подход не накладывает технических ограничений. Уберите все жестко подключенные CSS и JS файлы внутри файла raw_header.php (обычно в темах файлы такого типа называют header.php) и вынесите всю логику их добавления в отдельные файлы. Добавьте вызов функции wp_head() внутри секции <head>.
  2. Если вы не хотите переписывать тему, то вручную подключите CSS от Setka Editor. Этой цели можно достичь разными путями. Мы успешно протестировали следующий подход: сделали дополнительный файл setka-editor-resources.php. Он подключается в raw-header.php. Ниже содержимое файла с комментариями. 

Замечание 1. Способ, описанный ниже, подключает только CSS файл. JS шрифтов Adobe Fonts и других внешних файлов необходимо подключить похожим образом.


<?
php
// Added by Setka Editor team
function setka_editor_print_head_resources() {
   global $wp_styles;
 
   // Проверяем наличие активированного плагина Setka Editor
   // А также функцию, которую хотим вызвать
   if( !is_callable( array( '\Setka\Editor\Service\ScriptStyles', 'register' ) ) )
       return;
 
   // Вызываем регистрацию необходимых CSS и JS для Setka Editor
   // Обычно это делает WorldPress в момент вызова wp_head() (о которой писалось выше)
   \Setka\Editor\Service\ScriptStyles::register();
   \Setka\Editor\Service\ScriptStyles::register_theme_resources();
   
   // Проверяем, есть ли нужный нам CSS файл и выводим  с ним
   if( isset( $wp_styles->registered['setka-editor-theme-resources'] ) ) {
       $url =& $wp_styles->registered['setka-editor-theme-resources']->src;
       ?><?php
   }
}
setka_editor_print_head_resources(); // Сразу вызываем функцию

Замечание 2. Ссылка на CSS хранится в опции setka_editor_theme_resource_css. Ее можно получить вручную, с помощью get_option('setka_editor_theme_resource_css').

// Перед вызовом рекомендуется проверить существование класса для предотвращения фатальных ошибок в PHP
$css = new Setka\Editor\Admin\Options\ThemeResourceCSS\Option();
// Отдает всегда один тип данных (если ссылки нет, вернется пустая строчка)
$url = $css->getValue();
// или (может вернуть false, если значения нет)
$url = $css->getValueRaw();

 

Нет вкладки Setka Editor на странице создания новой записи

Сперва убедитесь, что:

  • Плагин Setka Editor установлен и активирован (Plugins -> Installed plugins).
  • Setka Editor включен для работы с записями: стоит галочка напротив Posts (Setka Editor -> Settings):

Screen_Shot_2017-09-15_at_15.53.32.png

Если на странице создания новой записи вы по-прежнему видите

Screen_Shot_2017-09-15_at_15.43.35.png

вместо

Screen_Shot_2017-09-15_at_15.44.18.png

 

Пожалуйста, перейдите в браузере в режим разработки, откройте консоль браузера (CTRL+SHIFT+I или F12), сделайте снимок страницы и направьте его нашей службе поддержки.

 

Редактор не запускается. Ошибка "Mixed Content" в консоли браузера

Setka Editor не запускается на странице редактирования поста, со следующей формулировкой:

mceclip0.png

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

Click to see the pop-up

Консоль отдаёт ошибку вида

Mixed Content: The page at *<URL>' was loaded over HTTPS, but requested
an insecure image "<URL>". This request has been blocked; the content must
be served over HTTPS.

 

Причина

Файлы редактора и/или изображения в постах загружаются протоколу HTTP, тогда как сам сайт работает на HTTPS. Браузер видит это несоответствие и считает контент, распространяемый по HTTP, небезопасным. Небезопасный контент автоматически блокируется.

Решения

Активируйте принудительную загрузку файлов редактора с Setka CDN

Чтобы не зависеть от путей к файлам на вашем сервере, включите загрузку редактора и стилей с Setka CDN.

Для этого перейдите в настройки плагина, отметьте галочкой пункт "Enable Setka CDN files" и сохраните изменения:

mceclip1.png

 

Используйте SSL-плагины для WordPress

  1. Если вы уже используете такой плагин, убедитесь, что установлена последняя версия.
  2. Если изображения по прежнему не загружаются, попробуйте использовать другой SSL-плагин. Например, Really Simple SSL.
  3. В некоторых случаях, после исправления несоответствий в протоколах HTTP и HTTPS, может потребоваться переустановка плагина Setka Editor.

 

Вручную отредактируйте пути до файлов, с помощью SSH

Чтобы вручную выполнить поиск и замену протокола с HTTP на HTTPS, потребуется SSH-доступ к серверу сайта.

 

Шаг 1. Подключитесь к серверу сайта по SSH

На macOS и Linux, с помощью приложения Терминал:

ssh user@site-domain.ru

Где user ваше имя пользователя, а site-domain.ru адрес сайта.

На Windows потребуется установить и настроить SSH-клиент. Например, PuTTY.

 

Шаг 2.  Замените протокол с HTTP на HTTPS

1. Перейдите в папку с сайтом, с помощью команды cd:

cd /path/to/site

Путь к сайту можно уточнить у хостинг-провайдера.

2. Найдите и замените все строки с упоминанием HTTP. Команда, приведённая ниже, не произведёт замену, а лишь покажет значения, которые будут заменены впоследствии. Проверьте результат. Если всё верно, запустите команду без ключа --dry-run.

wp search-replace http://site-domain.ru https://site-domain.ru --dry-run

 

3. Если выводится ошибка -bash: wp: command not found

Скачайте wp-cli:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

После чего, выполните команду из пункта 2 в таком виде:

php wp-cli.phar search-replace http://site-domain.ru htts://site-domain.ru --dry-run

 

Вкладка Setka Editor пропала из старых постов

Что вы видите

Вкладка редактора не отображается в постах, ранее свёрстанных в Setka Editor. Setka Editor доступен только для новых постов.

 

Причина

Setka Editor блокирует встроенный в WordPress редактор TinyMCE. Это делается, чтобы посты, Свёрстанные в Setka Editor, не поддавались редактированию в других редакторах.

Некоторые другие плагины всё же предпринимают попытку запустить TinyMCE на странице редактирования. Возникает противоречие: Setka Editor не может запуститься, пока работает TinyMCE, а TinyMCE не может запуститься, пока Setka Editor блокирует его работу.

 

Решения

1. Используйте последнюю версию WordPress с редактором Gutenberg

WordPress с редактором Gutenberg не имеет подобных проблем, поскольку не использует TinyMCE.

Важно: обновление WordPress до версии с Gutenberg не решит проблему, если вы будете использовать плагин Classic Editor.

 

2. Отключите принудительную блокировку TinyMCE

Код, блокирующий запуск TinyMCE, можно отключить. Для этого добавьте следующий фрагмент в код любого MU-плагина на сайте: 

function disableRichEditRunner()
{
    remove_filter('user_can_richedit', array('Setka\Editor\Admin\Service\RichEditRunner', 'userCanRichEdit'));
}
add_action('wp_loaded', 'disableRichEditRunner');

 

Как изменить редактор поста по умолчанию

В некоторых ситуациях пост, созданный в Setka Editor, может переключиться на стандартный визуальный редактор. Например, это случалось в устаревших версиях Wordpress-плагина Setka Editor. Переключение на стандартный редактор "ломает" вёрстку.

Чтобы изменить редактор по умолчанию на Setka Editor, скачайте wp-cli и подключитесь к серверу сайта по SSH. Затем выполните эту команду в папке с сайтом:

wp post meta POST_ID _setka_editor_use_editor 1

POST_ID - идентификатор поста в WordPress.

 

Если требуется вернуться к стандартному редактору, выполните:

wp post meta delete POST_ID _setka_editor_use_editor

Подробнее о командах WordPress

 

Как составить диагностический отчёт для службы поддержки

В некоторых случаях, для  решения проблемы потребуется диагностический отчёт WordPress-плагина Setka Editor. Чтобы скачать его:

1. Перейдите в настройки плагина.

2. Откройте вкладку "Support" и нажмите кнопку "Generate diagnostic report":

mceclip0.png

3. Сохраните файл отчёта и приложите его к обращению в нашу службу поддержки.