Правильный перенос сайта Вордпрес на новый домен

Если вы используете платную тему, в которой есть сложные объекты, то скорее всего они хранятся в сериализованном виде — это когда WordPress перед сохранением в базу, преобразует php-объект в строку и сохраняет её в поле таблицы базы данных. Для считывания, он просто получает эту строку и обратно преобразует в объект PHP.

Все хорошо, но до того момента когда нам надо переносить сайт с локального сервера на боевой. Что бы делаем? Самый примитивный вариант выглядит так: выполняем экспорт базы и в текстовом редакторе заменяем локальный адрес на новый.

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

Решение

Для правильного изменения адреса в базе лучше воспользоваться специальным скриптом. Называется он Search Replace DB.

Search Replace DB

Выполняем перенос сайта:

  1. Переносим файлы сайта на новое место.
  2. Выполняем экспорт локальной базы, ничего не меняем.
  3. Импортируем в базу нового сайта.
  4. Изменяем настройки сайта в wp-config.php, чтобы сайт смог подключаться к вашей базе.
  5. Качаем архив скрипта и загружаем в корневую папку сайта.
  6. Заходим по адресу, в котором располагается папка со скриптом (например, site.com/Search-Replace-DB) и у нас отобразится интерфейс, где часть данных для подключения к базе уже указана.
  7. Заполняем поля. Вводим старый и новый адреса. Выполняем тестовую проверку, нажав на кнопку dry run. В этом режиме начнётся проверка в каких местах надо заменить адрес. В этом режиме ничего изменено не будет.
  8. Убедившись что все хорошо, можно выполнить замену. Нажимаем кнопку live run.

Σ

Изменение адреса в базе для WordPress-сайта проведено правильно. Настройки плагинов и тем оформления никуда не пропадут.

Перенос записей в Вордпресс

Если нужно перенести не более 2 000 записей с одного WordPress на другой, то никаких проблем не возникнет. Это можно сделать стандартными средствами CMS, но если нужно перенести больше и с другой CMS. Например, с Bitrix или Joomla, то нужен другой подход.

В заметке рассмотрим как перенести большое количество записей в формате CSV на WordPress. Решение подойдёт даже для случая больше 100 000 записей.

Как произвести экспорт записей из старой CMS в CSV-файл — зависит от ситуации, поэтому в заметке об этом не стану говорить. Воспользуйтесь поиском и найдите решение, наверняка до вас это уже кто-то делал. Теперь у вас есть такой файл и поля в нём разделены запятыми (это важно).

Для WordPress есть много плагинов импорта записей из CSV-файлов, но только один из них сработал так, как было нужно. Это плагин Really Simple CSV Importer.

После установки и активации плагина в разделе Инструменты → Импорт появится пункт CSV.

Импорт CSV

Подготовим CSV-файл к импорту в WordPress. В моём случае в первой строке файла хватило 4 основных поля: заголовок, тип записи, дата публикации и текст записи.

"post_title","post_type","post_date","post_content"

Можно добавить ещё одно поле «post_status» со значением «publish». В таком случае наши записи при импорте будут опубликованы с датой публикации из поля «post_date». В моём случае было сложно добавить значение к каждой строке в CSV-файле, но это не проблема. Если поле «post_status» не указано, то все импортируемые записи попадут в черновики.

После этого опубликуем все наши черновики с помощью SQL запроса, который можно выполнить через phpMyAdmin:

UPDATE wp_posts SET post_status = 'publish' WHERE post_status = 'draft'

Теперь наши записи перенесены в WordPress, но не медиафайлы. Наверняка в записях были вставлены изображения. Вручную проверять каждую запись, искать ссылки на изображения и переносить их в WordPress займёт много времени и сил. На помощь приходит плагин Media Tools. После его активации в разделе Инструменты появится новый пункт Media Tools.Импорт медиа файлов

При необходимости настраиваем фильтры импорта, нажимаем «import External Images». Плагин сам загрузит все изображения на сайт и заменит старые ссылки на новые.

На этом всё. Удачного импорта записей!

Двухфакторная аутентификация в Вордпрес

Если у вас есть сайт или блог на WordPress, то его можно обезопасить от взлома. Один из таких способов повышения безопасности сайта — настройка двухфакторной аутентификации. Что это такое?

Двухфакторная аутентификация — это метод идентификации пользователя в каком-либо сервисе (как правило, в Интернете) при помощи запроса аутентификационных данных двух разных типов, что обеспечивает двухслойную, а значит, более эффективную защиту аккаунта от несанкционированного проникновения. На практике это обычно выглядит так: первый рубеж — это логин и пароль, второй — специальный код, приходящий по SMS или электронной почте.

В блоге лаборатории Касперского хорошо описано, что такое двух-факторная аутентификация.

Теперь о том, как подключить её к вашему WordPress-сайту:

  1. Установить и активировать плагин Google Authenticator.
  2. Установить приложение Google Authenticator на ваш смартфон.
    Ссылки на приложение: Android, iOS.
  3. Активируем Google Authenticator в своем профиле WordPress и через QR-код добавляем запись в приложение на смартфоне. Сохраняем изменения.

Настройка плагина Google Authenticator

Теперь давайте проверим работу плагина.

Разлогинимся и зайдем повторно. Для этого используйте сгенерированный пароль из Google Authenticator. Для удобства поставьте галку «запомнить меня», что бы не пришлось каждый раз авторизовываться при входе в админ панель сайта. Но помните, что это следует делать только на том компьютере, доступ к которому имеете только вы. На компьютере в интернет-кафе такое точно не следует выполнять.

Страница авторизации WordPress

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

Что выбрать: Джейкил или Вордпрес?

Целый год мой блог работал на Jekyll и размещался на GitHub.

За это время я его хорошо изучил, понял его сильные и слабые стороны. Месяц назад вернулся обратно к WordPress и ниже расскажу почему.

jekyll

Jekyll — это генератор статических сайтов. Устанавливаем его на компьютер, создаем определенную структуру папок и из них генерируются статичные HTML страницы, которые можно загрузить к себе на хостинг и отображать на сайте. GitHub предоставляет возможность генерации статики из репозитория, используя gh-pages.

В Jekyll мне понравились такие возможности:

  1. Писать заметки прямо из редактора кода, используя синтаксис Markdown.
  2. Публикация заметок через push в репозиторий сайта.
  3. Бесплатный хостинг от Github в виде gh-pages.

Через полгода использования начал понимать, что Jekyll отличная штука, но не для часто обновляемых сайтов. Для того, чтобы написать заметку, нужен компьютер, на котором настроен сам Jekyll и GitHub. Есть сервис prose.io, который позволяет писать заметки через веб, но он показался мне неудобным.

Помимо прочего, использование gh-pages для сайта несет не лучшие результаты в поисковой выдаче из-за использования 301 редиректа. Это влечет за собой не только плохую индексацию поисковиками, но и отказ социальных сетей от выгрузки заголовка, описания и фотографии заметки в карточку. Например, в карточку Facebook:

Карточка Facebook

После отказа от gh-pages, публикация заметок превратилась в ад. Нужно было каждый раз перезаливать статику на хостинг через FTP. Занятие не из приятных. Поэтому уже тогда начал задумываться о том, чтобы вернуться к использованию WordPress в качестве ядра блога.

Но это не значит, что Jekyll и другие генераторы статических сайтов — плохая затея. Наоборот. Они позволяют создать сайт, для которого не нужны Apache, PHP и MySQL. При этом есть возможность разделения повторяющихся блоков сайтов на шаблоны и их повторное использование. Есть встроенная система тегов, категорий, что позволяет легче находить и классифицировать информацию на сайте.

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

 

wordpress

WordPress — многим известная система управления сайтами. Заядлые технари упрекнут меня в недостаточной гибкости системы и будут правы, но не совсем. Возможности WordPress могут покрыть 90% всех потребностей. Если нужно что-то очень специфичное сделать, тогда да, не стоит его использовать, как и не стоит использовать любую другую CMS. В такой ситуации придется писать своё решение с нуля и это займет больше времени, денег, и в сопровождении такой проект обойдется клиенту (и вам самому) намного дороже.

За последние годы я выпал из новостей, касающихся WordPress и совсем недавно начал навёрстывать упущенное. Система выросла из CMS для блогов в CMS управления чем-твоя-душа-пожелает. Правда, WP настолько гибкий, что из него можно сделать интернет-магазин, форум, доску объявлений или даже простенькую социальную сеть.

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

Σ

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

При всей мощи WordPress его, как и раньше, можно использовать для ведения блога, что я и сделал. Перевел всю верстку, которая была на Jekyll-блоге в тему для WordPress и сейчас продолжаю ей заниматься. Если хотите получить такую же, пишите мне на почту alexandr@bizikov.ru или в комментарии к этой заметке. Когда доработаю её до должного уровня, начну продавать.

Благодаря потенциалу WordPress одним из основных направлений деятельности проектного бюро Набла будет разработка тем и плагинов для этой системы.

Локализация тем Вордпрес

В большинстве тем для WordPress присутствует папка languages, которая позволяет перевести на необходимый язык весь её функционал. Перевод заключается в редактировании .po файла. Рядом с ним находится файл с расширением .mo — это скомпилированный перевод, который использует тема.

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

Решением является простое и удобное для перевода приложение — Poedit. Достаточно скачать исходный файл локализации, переименовать его например в ru_RU.po (если вы переводите на русский язык) и можно начинать переводить. Приятным бонусом к удобному переводу является правая панель, в которой подгружаются наиболее вероятные варианты перевода слова или фразы:

Для того, чтобы приложение начало показывать варианты перевода на русском, нужно в Каталог → Свойства указать язык перевода: русский (Россия):