WordPress разные хинты

Разное

  • Usage статистика WordPress по  используемым версиях WordPress, PHP, Mysql, locale, etc
  • Для проигрывания GIF нужно выбирать full size при insert картинки в пост, иначе она будет статичной
  • Чтобы постить source-code почти без изменений (скобки пришлось подменять все равно) нужно использовать плагин SyntaxHighlighter. Его рекомендует юзать сам WordPress. Мне не понравился т.к. на мобильных экранах код отображается плохо.
  • nss labs использовали на сайте wordpress :/
  • на MacOS очень легко можно сделать resize множества картинок

 

 

Install

Подробно тут. Если при создании учетки в mysql выдает  ERROR 1819 (HY000): “Your password does not satisfy the current policy requirements”, значит нужно делать более стойкий пароль или отключать проверки через глобальные переменные.

CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'StRDf_24!Pdzs)';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
FLUSH PRIVILEGES;
yum install -y php php-common php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd
sudo service httpd restart

Если используется 8-ая версия mysql, то нужно добавить команду по использованию native_password, иначе будет ошибка подключения к базе. Знак % позволяет подключится с любого хоста сети 1.1.1.0/24.

# старая последовательность
ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';
CREATE DATABASE wordpress;
CREATE USER 'wordpress'@'1.1.1.%' IDENTIFIED BY '<password>';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'1.1.1.%';
FLUSH PRIVILEGES;
EXIT;

# добавляем команду
ALTER USER 'wordpress'@'1.1.1.%' IDENTIFIED WITH mysql_native_password BY 'wordpress_pass';

BACKUP/RESTORE

backup

mysqldump -u root -p wordpress > wordpress.sql

restore

mysql -u root -p wordpress < wordpress.sql
Update

Если плагины в WordPress не обновляются с ошибкой “This is usually due to inconsistent file permissions.” или вдруг при апдейте плагинов или самого WordPress начало спрашивать доступ к FTP или не заливается upload – нужно посмотреть какой пользователь запускает apache (обычно apache или www-data) и сделать его собственником для всех файлов (и подпапок) папки, в которой находится сайт.

ps -aux | grep apache
cd /var/www/html/
sudo chown -R apache:apache . # или sudo chown -R www-data:www-data .

Если нужно обновить сам WordPress вручную по FTP – делаем почти по мануалу, исключая удаление старых файлов и папок:

  • бекап базы и файлов сайта
  • отключаем плагины
  • накатываем всю папку нового wordpress на старый, ничего не удаляя в старой папке,
sudo cp -R /home/admin/wordpress/* .
sudo chown -R apache:apache .
  • включаем плагины
 
Большие таблицы/ таблицы из google

Если нужно вставить большую интерактивную таблицу для любых экранов – будет полезно сделать ее в google spreadsheet. Далее в меню выбираем File -> Publish to web -> Embed. Публикуем и получаем link. Единственное – в линке добавляем размер таблицы в код html (по умолчанию может быть небольшого размера). Добавляем в WordPress (Tools -> Source code). Enjoy. Пример тут.

iframe width="1000" height="600"
“под кат”

Спрятать “под кат” пост (post excerpt) можно (тут видео со способами):

  • используя tag more для каждого поста
  • сделать по умолчанию для всех постов, но должна поддерживать тема
  • используя плагин Advanced Excerpt, я выбрал именно этот способ т.к. тема не поддерживает content options, а more tag проставлять для каждого поста тупо-лень. В настройках плагина сделал:
    • Read More Link галка, чтобы можно было перейти к посту по ссылке и русификация текста
    • Ellipsis поставил “<br><br>” вместо “&hellip;” (по умолчанию) чтобы “read more” было всегда новой строкой в конце
    • Finish поставил Sentence чтобы не обрывалось на середине

 

HIDE CONTENT

Прячем контент (напр, показываем только аутентифицированным пользователям):

  • Hide-this – не поддерживается уже три года, но прекрасно работает. Остановился на нем. Потом отключил – безопасность лишних плагинов всегда открытый вопрос, а профита от него мне немного.
[hide for="!logged"]Lorem ipsum dolor sit amet.[/hide]
  • DynamicConditions – поддерживается, но требует еще плагины Elementor и Elementor Pro и (возможно) редактирование через них контиента. Гемор, не стал ставить.
 
 
ПЛАГИН Add Descendants As Submenu Items + Category Order and Taxonomy Terms Order
Удобные плагины для создания иерархии в меню, я его в итоге удалил оба т.к.  на эти красивости уходило много времени – важна именно контентная состовляющая, которая ищется поиском сайта/гуглом. Кроме этого каждый плагин это риск безопасности.
Плагин redirection

Если сделал мелкую статью, а потом решил влить ее в большую, но не хочешь 1) поддерживать мелкую 2) чтобы у пользователей была ошибка  если ты дропнешь мелкую – добавляешь текст мелкой статьи в большую и делаешь редирект с URL мелкой страницы в сторону URL большой. Причем пост мелкой можно удалять, он не нужен.

В нем так же можно мониторить ошибки 404.

 

Удаление даты из URL (изменение структуры permalink)

Для удаления из URL даты поста (мне например это только мешает потому что пост я могу апдейтить постоянно) нужно в глобальных настройках wordpress -> permalink выбрать структуру Post name, а не по умолчанию.

Осторожно, после этого по старым URL уже не перейти на посты (если не изменить структуру обратно), а индексированы то посты именно по ним. Поэтому надо делать редирект. Это можно сделать как через плагин, так и в htaccess (если у вас apache). Есть мнение, что надежней через htaccess, чем через плагины – в интернете не раз видел отзывы о поломках и медленной работе в случае использования плагинов.

RewriteRule ^post/([0-9]+)?/?([0-9]+)?/?$ /$3 [QSA]
RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/(.*)$ https://weril.me/$3

 

Yandex Metric, Google Analytics

Проще всего проинсталить сбор данных изменив header в теме. Так же можно поставить через плагин, например для яндекса

 

Посещаемость сайта

Помимо данных из Yandex Metric, Google Analytics о своем сайте. Можно посмореть тут для любого сайта.

https://www.similarweb.com/website/weril.me
https://www.alexa.com/siteinfo/weril.me

 

Site health wordpress

В WordPress появился модуль site health, который повторяет в чем то функционал Wordfence – говорит о необходимости апдейтов аутдейтед модулей/системы, небезопасных настройках, необходимости удаления тем, которые не используются.

Все бы круто, он предложил удалить лишние темы сайта – все правильно, implicit deny приветствуется в вопросах безопасности. Зачем плодить сущности без нужды (хотя они и в выключенном состоянии и последней версии).

Но сразу затем wordpress просит обновить php для поддержки двух модулей.

bcmath – Used to improve the performance of math calculations.
imagick – Provides better image quality for media uploads. See WP_Image_Editor is incoming! for details. Smarter image resizing (for smaller images) and PDF thumbnail

Поставил bcmath, он потребовал только апдейта ключевых модулей php.

sudo yum install php-bcmath

Install 1 Package
Upgrade ( 8 Dependent packages)

Но не стал ставить imagick. Это дичь какая-то, требует 59! (59, Карл!) пакетов в зависимостях. Неактивные темы мы выключаем значит, зато ставим 59 пакетов чтобы заработал 1 бесполезный (для меня по крайней мере). Очень безопасно.

sudo yum install php-imagick

Install 1 Package (+59 Dependent packages)

 

2FA (two factor authentication)

Cisco Duo

Подробнее о WordPress + Cisco DUO в этом же блоге.

 

Wordfence

Использовал довольно долго пока не переехал на Duo. Съехал с miniOrange на Wordfence из-за:

0) miniOrange = noname, в отличии от Wordfence

1) их апдейта который покрашил аутентификацию (хотя и надо отдать должное на след. день обновили – но именно это подтолкнуло посмотреть альтернативы)

2) из-за того, что пишут неправильный OTP, когда правильный пароль – вы что?!

3) нет интеграции с recaptcha

Включение recaptcha для 2FA Wordfence требует простейшего получения двух токенов (ключ сайта – передается клиентам, секретный ключ – используется для обмена данными между сайтом и сервисом recaptcha) на странице recaptcha Google и добавления их на страницу настроек WordPress. 

 

miniOrange 2-factor

Использую довольно долго этот плагин для бесплатной двухфакторной аутентификации по паролю + OTP (one-time-password) из Google Authenticator, полет нормальный. Не auth0 конечно по дизайну/функционалу, но плагин не заброшен, а это в безопасности зачастую куда важнее. Да и настройки никакой не требует, в отличии от auth0, что снижает порог входа.

 

Auth0

Использовал сначала auth0, но они его перестали поддерживать (нет версий для актуальных wordpress) и не решали баги, которые не позволяли нормально обновляться. В конце концов устал ждать и удалил.. а жаль, решение очень прокаченное по функционалу.

Как настраивал:

Для настройки в wordpress плагина auth0, в настройках auth0 нужно указать адрес домена, на который будет редирект при аутентификации и уникальные client_id/client_secret. В настройках API нужно указать адрес своего сайта, на который будет произведен редирект после аутентификации.

$auth0 = new Auth0(array(
 'domain' => 'weril.auth0.com',
 'client_id' => 'xxxxx',
 'client_secret' => 'xxxxx',
 'redirect_uri' => 'http://weril.me/callback'
));

Через Plugin auth0 сделал двухфакторную аутентификацию в WordPress  и оключил аутентификацию по умолчанию. Сначала делал по sms, но оказалось, что SMS в auth0 только через Сервис twilio (дается сто бесплатных и до 10 в час). Все бы клево, только в списке номеров нет России (хотя при регистрации смс от twilio придет). В результате сделал через Google Authentication. Тупил только тут, не понимал почему не работает, хотя нужно было просто прочитать – не вводил ClientID свой в коде перед апдейтом.

Чтобы отключить регистрацию пользователей в Database -> Settings ставим Disable Sign Ups. Новых пользователей при желании можно создать в WEB auth0.

Check this if you want to prevent sign ups to your application. You will still be able to create users with your api credentials or from the dashboard.

Чтобы сбросить токен (поменялось устройство) в лк auth0 тыкаем:

Users -> User -> Actions -> Reset Multi Factor (Google)

Leave a Reply