В данной статье будут разбираться различные ошибки на сайте, конфликты скриптов и варианты их решения.
Циклические ссылки
Обнаружены циклические ссылки. Сайт выполнил переадресацию слишком много раз..
Решение: надо проверить файл htacces: включен ли модуль mod_rewrhite, нет ли каких-то редиректов. Проверить установлен ли на сайте плагин для редиректа.
Еще одной причиной может быть плагин Really Simple SSL (4 млн установок!). Этот абсолютно ненужный (потому что нужно ставить бесплатный сертификат Let’sEnScript и делать самостоятельно редирект, если необходимо) плагин провоцирует циклические ссылки. При этом его не так просто отключить. Рекомендация по отключению: через БД прописать у сайта http, активировать плагин и включить его основную функцию SSL. После этого деактивировать плагин, но не из списка плагинов, а из самого плагина с сохранением SSL (естественно на хостинге должен быть установлен SSL).
Не отключается лайтбокс Woocommerce
Поставил плагин FancyBox, при этом хотел отключить стандартный плагин Woocommerce. Для этого снял галку в настройках — не помогло. Данный скрипт для того чтобы полностью отключить лайтбокс WC и все его стили.
//DISABLE WOOCOMMERCE PRETTY PHOTO SCRIPTS add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 ); function my_deregister_javascript() { wp_deregister_script( 'prettyPhoto' ); wp_deregister_script( 'prettyPhoto-init' ); } //DISABLE WOOCOMMERCE PRETTY PHOTO STYLE add_action( 'wp_print_styles', 'my_deregister_styles', 100 ); function my_deregister_styles() { wp_deregister_style( 'woocommerce_prettyPhoto_css' ); }
Не загружаются изображения
При загрузке изображений — ошибка HTTP.
Решение: надо на хостинге отключить один из этих модулей (не знаю какой точно): gmagick, http.
No Access-Control-Allow-Origin header
Слетел шрифт, ошибка связана с правами на этот шрифт.
Решение: надо вставить в .htaccess следующее
<IfModule mod_setenvif.c> <IfModule mod_headers.c> # mod_headers, y u no match by Content-Type?! <FilesMatch "\.(gif|png|jpe?g|svg|svgz|ico|webp)$"> SetEnvIf Origin ":" IS_CORS Header set Access-Control-Allow-Origin "*" env=IS_CORS </FilesMatch> </IfModule> </IfModule> # ---------------------------------------------------------------------- # Webfont access # ---------------------------------------------------------------------- <IfModule mod_headers.c> <FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch> </IfModule>
Сайт не работает на домашнем компьютере
Ошибка — ERR_CONNECTION_REFUSED
Не загружаются и не обновляются плагины
Решение: проблема из-за версии php 5.2, вылечилось переходом на версию 5.6
Не отправляются заказы Woocommerce
Часто возникающая проблема — не приходят заказы WC ни на почту администратора, ни на почту заказчика. Обязательно нужно сделать 3 вещи:
- Сделать почту домена
- Установить и настроить плагин WP Mail SMTP (как это сделать описано в той же статье про почту домена).
- Указать созданный ящик домена в настройках Woocommerce/Email’ы в поле Адрес отправителя.
После этого все необходимые заказы/уведомления будут отправляться куда следует.
Данная ошибка встречается в woocommerce при изменении расположения хуков.
Причина: переменная вызывается без объявления глобальной переменной global $post, $product;, нужно ее прописать.
Ошибка поиска тем и плагинов
При попытке добавить (найти) тему или плагин выводится сообщение:
Произошла непредвиденная ошибка. Возможно, что-то не так с сайтом WordPress.org или с настройками вашего сервера. Если проблема не решится, обратитесь на форумы поддержки.
Возможные причины: Подключены ли расширения curl и openssl? Разрешены ли исходящие соединения?
Дефисы превращаются в тире
Если поставить подряд четыре 3 дефиса, то во фронтэнде они выведутся как тире. Проблемы происходят с русскоязычными доменами .рф, т.к. в их кодировке встречается по несколько дефисов подряд, и соответственно пути нарушаются.
Не удаляются товары WC
В какой-то момент перестали удаляться из корзины товары (в корзине и в миникорзине).
Изменил php с версии 7.1 на 7.0. Ошибка ушла, но проблема осталась.
Ошибка JavaScript и Cookies
Данная ошибка происходит из-за плагина Spam Shield (АнтиСпам). Причем подобные конфликты с JavaScript и Cookies с данным плагином возникали и ранее. В таких случаях разработчики обычно выпускали обновление и проблема исчезала.
500 internal server error
Это ошибка сервера, в большинстве случаев связана с файлом .htaccess, точнее с неправильным синтаксисом в нем. Вариантами устранения является комментирование подозрительных строк знаком # (вначале) или выводом ошибок (строка): php_flag display_errors on, после чего вместо 500 internal server error будет выводиться конкретная ошибка (строка/документ), которую необходимо устранить.
… is not a function (jquery)
Это происходит из-за неправильного вызова функции. Помогает наведение порядка в js: последовательность загрузки скриптов, установка одиночных кавычек, замена $ на jQuery, удаление лишних запятых, добавление недостающих точки с запятой. В последней версии WordPress есть встроенная функция проверки кода и предупреждения об ошибках.
Также может помочь оборачивание проблемного скрипта в конструкцию:
(function($) { ..some script })(jQuery);
Сообщение: Подтвердите действие на сайте
Нет интернет-соединения. Проверьте подключение и повторите попытку.
Методом тыка определил, что проблему вызывает плагин Contact Form 7. Это происходило из-за неправильно установленной reCaptcha.
Ошибка mediaelement
Устранил ошибку отключением mediaelement
add_action('init', 'avf_remove_media_element', 10); function avf_remove_media_element() { wp_deregister_script('wp-mediaelement'); wp_deregister_style('wp-mediaelement'); }
Не загружаются файлы
Не загружаются файлы, не обновляются плагины, при редактировании файл становиться пустым (и на него ничего не записывается) — это все признаки того, что на хостинге нет места на жестком диске.
Проблема с WP_CACHE
Не фатальная ошибка видна только с WP_DEBUG, выглядит примерно так:
Возникает если на сайте установлен сторонний плагин кэширования, который в процессе установки удалил advanced-cache.php, который система не может найти.
Нужно отключить функцию:
define('WP_CACHE', false);
либо восстановить ее в ядре.
Не отображаются ВСЕ заказы WC
При этом если перейти во вкладки Обрабатываются или Завершенные заказы выводятся. Стало происходить после обновления WordPress до версии 5.0. Помогло обновление WC до последней версии.
Не работает меню
Ошибка columns is not defined. Возникала из-за функции юр. или физ. лицо, которая на том сайте была лишней.
Ошибка WC отображения в архивах подкатегорий / товаров
При включении настройки отображать в архивах подкатегории все равно отображаются товары. Изменение темы (в т.ч. на Storefront), отключение всех плагинов не помогло. Пришлось принудительно у категорий включать опцию Показывать подкатегории.
Ошибка WC пагинации товаров которых нет в наличии
Столкнулся с ситуацией, когда в настройках WC указал скрыть товары которых нет в наличии, но при этом пагинация как бы игнорирует эту настройку и отображает количество всех товаров, но часть их них не показывает. Из-за этого получается что на одной странице может быть 8 товаров, на второй 3, а третьей 15. Что не удобно.
Решается это функцией:
// Выводить только товары в наличии
add_filter( 'pre_get_posts', 'truemisha_show_in_stock_only', 25 );
function truemisha_show_in_stock_only( $query ) {
if(
! is_admin()
&& $query->is_main_query()
&& ( is_shop() || is_product_category() || is_product_tag() )
) {
$query->set(
'meta_query',
array(
array(
'key' => '_stock_status',
'value' => 'outofstock',
'compare' => 'NOT IN'
)
)
);
}
}
Ошибка доставки WC: Нет доступных способов доставки
Не выявил из-за чего появляется ошибка. Но способы появляются если несколько раз включить и выключить checkbox (возможно скрытый в некоторых шаблонах) «Доставка по другому адресу?».
Эта ошибка возникает если отключить поле Страна в полях доставки или оплаты (в зависимости от какого адреса берутся методы доставки). Это поле нельзя отключать, а только скрывать стилями.
504 Gateway Time-out
Данная ошибка может возникать при работе с БД, обычно при массовых изменениях. Ошибка устранилась когда на хостинге увеличили серверный TimeOut с 120 секунд до 1800.
Этот товар не может быть куплен
Может быть вызван ошибкой какого-либо из плагинов. Решал эту ошибку постепенным отключением плагинов.
Чтобы осуществить запрошенное действие, WordPress необходим доступ к вашему серверу
Также может выводится уведомление «Невозможно полностью удалить плагин».
Данная ошибка возникает при удалении плагинов, вероятно связана с сервером. Помогает изменение прав 777 на папки wp-content и wp-plugins. Также помогает директива
define('FS_METHOD', 'direct');
в файле wp-config.php. Прописывать нужно после строки:
define('DB_COLLATE', '');
Извините, вам не разрешено загрузить этот тип файл
Ошибка происходила при загрузке изначально разрешенного .doc. Причина была в том что .doc был в формате rtl. Пересохранил файл в doc 97 и он сразу загрузился.
В описаниях к категориям не сохраняются и не выводятся тэги iFrame
Не сохраняться тэги iFrame могут в частности из-за плагина YoastSEO из-за строк 250 и 251 в файле admin/taxonomy/class-taxonomy.php.
Вывести iframe можно используя код:
// Allow HTML in term (category, tag) descriptions
function custom_wpkses_post_tags( $tags, $context ) {
if ( 'post' === $context ) {
$tags['iframe'] = array(
'src' => true,
'height' => true,
'width' => true,
'frameborder' => true,
'allowfullscreen' => true,
);
}
return $tags;
}
add_filter( 'wp_kses_allowed_html', 'custom_wpkses_post_tags', 10, 2 );
Телефон с градиентом
Странная ошибка. Телефон становится с градиентом с прозрачностью по символам. Каждый символ обернут тегом small и каждый последующий с меньшим значением opacity. Не смог найти причину. Устранить можно стилями:
a[href^="tel"] small {
opacity: 1 !important;
font-size: var(--wp--preset--font-size--large) !important;
}
[site-socialshare]