Кто виноват — плагин или тема?

Нашёл на просторах интернета классную диаграмму (Learning to Troubleshoot WordPress), на которой очень доступно показаны все шаги, для выявления проблемного плагина на вашем сайте.

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

Как найти виновника? Это может быть новый плагин, либо несовместимость плагина с уже существующими и установленными плагинами, или же вашей темой. Эта диаграмма поможет вам разобраться в вопросе раз и навсегда :-)

Переведённая версия диаграммы на русский язык (нажмите для увеличения):
Кто виноват - плагин или тема?

Как установить главную рубрику для записи

Недели полторы назад один из участников Марафона по РСЯ у Алексея Сорокина (Smart) задал в скайпе очень актуальный и для многих нерешённый вопрос, а именно — как из множества выбранных рубрик выбрать главную, по чьей ссылке будет доступна запись по умолчанию.

Хочу сразу отметить, что это актуально только для тех случаев, когда ваши постоянные ссылки («Параметры» — «Постоянные ссылки») имеют формат /%category%/%post_name%/, то есть с выводом рубрик в URL адреса. В остальных же случаях эта проблема не возникает.

Как установить главную рубрику для записи

Так вот, есть забавная ситуация, что если сначала создать запись с одной рубрикой, опубликовать её, а затем отредактировать, добавив вторую рубрику, то URL записи изменится на новый! Удивлены? Мы тоже были удивлены, когда столкнулись с этим.

Те, кто не может после Нового года понять текст из предыдущего абзаца рассказываю на пальцах. Имеем:

  • Три рубрики: «Главная», «Новости» и «Юмор»:
    Как установить главную рубрику для записи
  • Тестовую запись в рубрике «Юмор» и соответствующий URL:
    Как установить главную рубрику для записи

Запись отлично открывается по нашей ссылке, то есть на первом этапе проблем нет.

Теперь давайте добавим новую рубрику для этой записи и посмотрим, что произойдёт.
Как установить главную рубрику для записи

Внимание! С этого момента наша запись доступна по новому URL!
Как установить главную рубрику для записи

Вернее, правильнее будет сказать, что она доступна по двум адресам, а это огромная проблема в SEO. Любая запись должна быть доступна только по одному адресу и никак иначе. В противном случае получается дублирование контента, что крайне плохо скажется на отношении поисковых систем к вашему сайту.

Назначаем главную рубрику

Самый простой способ назначить главную рубрику, это воспользоваться плагином WP Category Permalink, который создан именно для решения этой проблемы.

Устанавливается и активируется он стандартным способом в WordPress, не буду рассказывать. Но сразу после активации в записях вашего сайта в разделе «Рубрики» появится дополнительная возможность.

Обратите внимание:
Как установить главную рубрику для записи

Ссылка «Permalink» возле наведённой на рубрику мышки означает то, что после нажатия на неё эта рубрика станет главной. А это как раз нужное нам решение. Проверим?
Как установить главную рубрику для записи

И теперь, если вы попробуете перейти с главной страницы на эту запись, либо же из виджета «Последние записи» в сайдбаре, то URL будет именно тот, который нам необходимо с выбранной рубрикой.

Успехов! :-)

Как подогнать изображение под размер записи в WordPress

Сегодня мы рассмотрим такую незамысловатую задачку, как подгон ширины изображения в запись или на страницу нашего сайта. Проблема возникает в тот момент, когда вы пытаетесь вставить изображение, превосходящее по размерам ширину экрана, на которую ориентируется используемая вами тема.

В идеальном варианте, широкоформатное изображение должно точно вписаться по ширине:
Как подогнать изображение под размер записи в WordPress

А бывает и вот такая неприятность (выявлено в плагине wPPage):
Как подогнать изображение под размер записи в WordPress

Видите разницу? В первом случае изображение точно вписалось по ширине, а во втором — вылезло за границы, из-за чего внешний вид страницы сразу стал в разы хуже.

Как же это исправить?

Есть два варианта: изменить масштаб изображения в самом WordPress, либо изменить фактический размер изображения в графическом редакторе.

Уверен, что большинство людей скажут, что первый вариант наиболее удобный, потому что быстрый и не требует особых знаний и каких-либо временных затрат. Я соглашусь с этим, но есть нюанс: ваши пользователи со временем станут вас ненавидеть.

Всё дело в том, что когда вы масштабируете размер изображения средствами WordPress, вы фактически не изменяете его истинный размер. В итоге, браузерам ваших посетителей придётся сначала загрузить полную версию изображения, а затем изменить масштаб «на лету», чтобы оно вписалось по ширине в окно.

Я рекомендую изменять размер изображения под нужный вам, используя любой удобный графический редактор. Это может быть Adobe Photoshop, GIMP, Paint.Net или какой-нибудь другой.

Как узнать требуемый размер?

Во всех современных браузерах есть такая полезная штука, как инспектор или отладчик. Он позволяет находясь на сайте, изменять свойства любых элементов, в том числе и изображений. Нам он понадобится для определения нужной ширины страницы.

Рассмотрим на примере браузера Google Chrome, в остальных (Opera, Mozilla Firefox, Яндекс.Браузер) всё делается абсолютно аналогично.

  • Нажимаем правой кнопкой мыши на любом элементе на странице и в появившемся меню выбираем «Инспектировать элемент»:
    Как подогнать изображение под размер записи в WordPress
  • Откроется отладчик:
    Как подогнать изображение под размер записи в WordPress
  • Пугаться его вида не стоит — он не такой страшный, как кажется.
    В нашем случае был выделен и подсвечен тот элемент, на котором я нажал правой кнопкой мыши.
  • Теперь нам нужно определить контейнер, в котором выводится наш контент, собственно.
    Для этого перещёлкиваем по всем элементам древовидной структуры, снизу вверх:
    Как подогнать изображение под размер записи в WordPress
  • Обращаем внимание на то, что при выборе какого-либо элемента, он будет подсвечиваться на самой странице сайта:
    Как подогнать изображение под размер записи в WordPress
  • Ваша цель — найти такой элемент, который бы был по размерам с шириной страницы.
    В моём случае это элемент ps_content:
    Как подогнать изображение под размер записи в WordPress
  • Как я узнал, что это именно он? Смотрите на скриншот, вы поймёте сразу:
    Как подогнать изображение под размер записи в WordPress
  • Обратили внимание, что именно эта ширина и нужна мне для картинки?
  • Теперь остаётся лишь найти эти самые размеры ширины контейнера. Вот они:
    Как подогнать изображение под размер записи в WordPress

Вот таким опытным путём мы выяснили, что ширина контейнера 720 пикселей и теперь можем использовать этот размер для нормального масштабирования изображения средствами графического редактора.

Есть вопросы? Задайте их в комментариях! :-)

Исправляем ошибку установки соединения с базой данных

Ссылка на оригинальную статью
Эта статья является переводом оригинальной статьи How to Fix the Error Establishing a Database Connection in WordPress из блога WPBeginner.

Если вы занимаетесь разработкой своего сайта сначала на локальном компьютере, то при переносе на хостинг практически всегда столкнётесь с ошибкой установки соединения с базой данных, в английской версии WordPress она звучит так: Error establishing a database connection.

Но совсем необязательно, что это будет из-за переноса сайта, могут быть изменены настройки подключения к базе данных: удалён пользователь, под которым вы подключались, либо же изменён пароль или MySQL вынесен на отдельный сервер.

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

Убедитесь, что имеете исправную резервную копию вашего сайта до любых действий, которые будут предложены ниже в инструкции!

Проявляется ли проблема в wp-admin

Первым делом стоит убедиться, что данное сообщение об ошибке выводится и на сайте, и в административной панели. Для этого попробуйте зайти в админку сайта (wp-admin).

Если в административной панели выводится абсолютно аналогичное сообщение об ошибке установки соединения с базой данных — можете смело переходить к следующему шагу этой инструкции.

Если же вы получили сообщение «Одна или несколько таблиц базы данных недоступны», тогда нужно будет выполнить автоматическое исправление таблиц механизмами WordPress.

Для этого нужно выполнить следующие шаги:

  1. Открыть файл wp-config.php и добавить в него следующую строку:
    define('WP_ALLOW_REPAIR', true);
  2. После этого зайти по адресу http://ваш-сайт.ru/wp-admin/maint/repair.php
    Исправляем ошибку установки соединения с базой данных
  3. Нажать кнопку «Починить базу данных» и дождаться завершения операции.
    Это может занять некоторое время, в зависимости от размера данных в таблицах базы вашего сайта.
Запомните, что доступ к этой странице может получить любой пользователь вашего сайта, обратившись к ней по прямому адресу. Поэтому после исправления ошибки обязательно удалите строку WP_ALLOW_REPAIR из файла wp-config.php!

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

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

Проверка файла wp-config.php

Файл wp-config.php один из самых важных файлов в WordPress — именно в нём прописаны все параметры для нормальной работы вашего сайта. Все настройки для подключения к базе данных тоже находятся именно в этом файле.

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

За настройки подключения к базе данных MySQL отвечают следующие константы:

define('DB_NAME', 'название базы данных');
define('DB_USER', 'пользователь базы данных');
define('DB_PASSWORD', 'пароль пользователя');
define('DB_HOST', 'localhost');

Имейте в виду, что в константе DB_HOST не всегда будет значение localhost, это может быть и IP адрес сервера, либо же какой-то другой адрес, если вы используете хостинг от МастерХост, например. В любом случае, эту информацию вам нужно уточнить у вашего хостинг-провайдера, либо в личном кабинете вашего хостинга.

Но для большинства хостингов значение DB_HOST будет всё-таки localhost и чаще всего изменять его не придётся.

Стоит упомянуть, что в некоторых случаях вам нужно будет указать нестандартный порт для подключения к MySQL, это делается следующей командой в файле wp-config.php:

define('DB_HOST', '127.0.0.1:3351');

, где 3351 — порт, на котором «прослушивается» MySQL-сервер. Уточните это значение у вашего системного администратора.

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

Проверка работоспособности MySQL сервера

Если ваш хостинг-провайдер позволяет использовать скрипт phpMyAdmin — попробуйте воспользоваться им. Для этого зайти на ваш аккаунт, найдите пункт в меню с упоминанием базы данных и возле него будет ссылка на phpMyAdmin.

Если у вас виртуальный сервер (VPS) и вы используете cPanel или ISPManager, то ссылка на phpMyAdmin будет на главной странице панели управления сервером.

В любом случае, вам нужно попробовать зайти в базу данных вашего сайта. И, если всё удалось, то ещё раз проверить данные для подключения, которые вы внесли в файл wp-config.php из прошлого шага этой инструкции.

Если же не удаётся подключиться к базе данных через phpMyAdmin, то пробуем вот такой ход.

  1. Создаёте на компьютере файл, назовём его test.php и добавляем в него следующий код:
    <?php
    $resource = mysql_connect('localhost', 'пользователь', 'пароль');
    if (!$resource) {
    die('Ошибка при подключении: ' . mysql_error());
    }
    echo 'Подключено успешно!';
    mysql_close($resource);

    Вместо «пользователь» и «пароль» укажите свои данные для подключения к базе данных. Если у вас VPS — можете использовать учётную запись root.

  2. Загружайте этот файл на FTP вашего хостинга
  3. Открывайте в браузере адрес http://ваш-сайт.ru/test.php
  4. Если на экране отразилось «Ошибка при подключении», то рядом с ней будет выведено сообщение (чаще на английском), по которой в Google или Яндекс можно найти какие-то комментарии
  5. Если же отобразилось «Подключено успешно», тогда внесите используемые ваши логин и пароль для подключения к базе данных в файл wp-config.php, как в позапрошлом шаге

Если при открытии этого скрипта вы получили сообщение: #1045 – Access denied for user ‘foo’@’%’ (using password: YES), это значит вы используете неправильный логин или пароль. Проверьте ещё раз и попробуйте снова.

В случае, если не удалось подключиться к базе данных ни через phpMyAdmin, ни через файл test.php — рекомендую обратиться в службу поддержки вашего хостинг-провайдера и разобраться в чём дело по телефону. У нормального провайдера круглосуточно работает служба поддержки.

Решения, которые помогли другим

Используйте эти рекомендации на свой страх и риск!
В любом случае, перед началом любых правок у вас на руках должна быть рабочая резервная копия вашего сайта.

Обновление настройки в wp_options

Некоторым пользователям помогало выполнение следующего запроса к базе данных через phpMyAdmin:

UPDATE wp_options SET option_value='адрес_вашего_сайта' WHERE option_name='siteurl';

Вместо «адрес_вашего_сайта» укажите адрес сайта, чтобы запрос выглядел так:

UPDATE wp_options SET option_value='http://ваш-сайт.ru' WHERE option_name='siteurl';

Имейте в виду, что таблица wp_options может называться иначе, если вы изменяли префикс таблиц WordPress. В этом случае, вместо wp_ укажите свой префикс.

Подключение под root к базе данных

Если у вас VPS и удалось подключиться с помощью файла test.php к базе данных под пользователем root — тогда попробуйте использовать эти данные для подключения к базе данных вашего сайта через wp-config.php.

Если всё пройдёт нормально и сайт заработает, тогда рекомендую зайти в phpMyAdmin, создать нового пользователя и указать логин и пароль нового пользователя в wp-config.php.

Никогда не работайте под учётной записью суперпользователя на вашем боевом сервере.

Заключение
Решение этой проблемы может быть как мгновенным, так и длительным. Всё зависит от сложности и ситуации, повлёкшей появление этого сообщения.

Если вы знаете ещё какие-то пути решения это проблемы — напишите о них в комментариях и я обновлю заметку.

В любом случае, вы всегда можете обратиться ко мне за консультацией и вместе мы решим возникшую проблему. Успехов!

Как деактивировать плагин в WordPress через FTP

Иногда случаются ситуации, когда после установки какого-либо плагина становится невозможным вход в панель управления сайтом, либо пропадает меню или происходят другие нежелательные действия. Для исправления этой ошибки есть только один путь — найти и удалить нерабочий плагин.
Читать далее «Как деактивировать плагин в WordPress через FTP»