Я берусь за проект, в котором мне нужно создать статический веб-сайт (из-за ограничений хостинга).
Я подумал о том, чтобы попытаться сделать это, создав сайт WP на своем компьютере, затем создав карту сайта, затем скопировав этот сайт и, наконец, загрузив файлы на хост.
Любые лучшие предложения о том, как это сделать? (или любая веская причина, почему я не должен даже пытаться)
Каковы ограничения? Это может помочь нам придумать другую идею.
Из того, что я знаю сейчас (и я узнаю больше всего через две недели): нет базы данных. Я думаю, может быть, PHP (но я еще не знаю). Размышляя об этом, возможно ли использовать БД с другого хоста?
Да, если БД поддерживает подключения с других хостов, это вполне возможно. И это может быть самым простым решением для вас.
Интересный Хакре. Я проверю свои варианты и буду работать в соответствии с этим.
Работает ли это для форм, например, «оставить комментарий» под каждым сообщением? Или регистрация пользователя? Я предполагаю, что что-нибудь, где пользователь сделает что-то, что изменит базу данных, сломается?
Я отмечаю ваш ответ как «ответ», поскольку: 1) вы дали отличный ответ. 2) Я надеюсь, что вы вернетесь, чтобы обновить ответ о том, как это сработало в конце :). Спасибо, что поделились знаниями!
Рад, что вы нашли это полезным. Я обновлю этот пост, когда у меня будет больше информации.
Просто обновление, что исходная стратегия ответа действительно сработала. Пара дополнительных советов — не ссылаться на RSS-канал WordPress из шаблона, так как это сбивает с толку wget. Загрузите его как отдельную команду. Кроме того, WordPress запекает полные URL-адреса отсутствующих ресурсов, поэтому полезно выполнить поиск/замену после загрузки, чтобы удалить основную часть: /bin/find scraped-en/ -type f -exec sed -i ‘s| имя хоста[ ^/]*||g’ {} \;
Я думал использовать его — спасибо за предложение 🙂
@Tal Galili: я использовал его в прошлом, и он работал очень хорошо для большинства сайтов. У него были проблемы с сайтами со странной архитектурой, но у него не должно быть проблем с сайтом WordPress. Самое приятное в этом то, что это просто работает.
HTTTrack великолепен, вам может потребоваться некоторое время, чтобы разобраться во всех параметрах, но он помогает и даже позволяет позже обновить статическую страницу. Попробуйте, его проще использовать, чем wget, если вам нравятся графические интерфейсы — не говоря уже о том, что wget не мощный.
Я делаю это прямо сейчас (все еще в процессе). Лучшая установка выглядит так:
Добавьте
.html
расширение к сообщениям — просто используйте собственный шаблон сообщения.Добавьте
.html
расширение на страницы — для этого нужен плагин, если вы используете страницыОтключить каналы (в function.php, удалив для него заголовки)
Используйте wget из командной строки:
wget -x -nH -P scraped -np -k -R php -E -X wp-content,wp-includes -m http://address/siteroot/
Это засасывает ваш сайт, изменяет URL-адреса каталогов в стиле WordPress на URL-адреса.html, меняет внутренние ссылки на относительные и т. д. URL-адреса каналов на всех уровнях (корневой, категории, статьи и т. д.) портят все это, поэтому они должны быть удаленный.
Очевидно, предполагается, что сайт полностью доступен из корня. Если это не так, используйте плагин карты сайта (как вы сами упомянули) и соскребите оттуда.
Запустите какой-нибудь процессор, чтобы удалить
http://address/
или изменить его на абсолютный корень вашего статического сайта. Если вам нужно перемещать каталоги (например, медиа/загрузки), это немного сложнее.Это должно пройти около 80% пути.
Если вы в конечном итоге пойдете по этому пути, отследите меня, когда узнаете больше, и я поделюсь остальной частью настройки со своего рабочего компьютера. (Если это нужно более чем одному человеку, оцените это, и я опубликую его где-нибудь через месяц или около того, как только он будет полностью готов.)
Из вашего комментария я считаю, что есть два лучших варианта, которые сократят время разработки и контролируют ваше здравомыслие.
1) Если у вас есть PHP с PDO, вы можете использовать этот плагин http://wordpress.org/extend/plugins/pdo-for-wordpress/, который позволит вам использовать sqlite в качестве базы данных. Примечание: WordPress был разработан вокруг и для mysql, ваши результаты могут отличаться при использовании другого бэкенда sql.
2) Если все, что у вас есть, это несколько основных модулей php. Я бы просто создал сайт с группой включений. Там, где вы создаете серию «шаблонов», используя php. У меня был бы файл php для верхнего, нижнего колонтитула, домашней страницы и внутренней страницы. Если у вас несколько внутренних страниц. Я бы вынес любые похожие макеты на отдельную страницу и включил их для каждого типа внутренней страницы. Затем поместите весь свой контент на внутренние страницы. Затем с вашим index.php создайте некоторый базовый код, который загружает нужные вам страницы на основе входящего URL-адреса. Вы можете использовать.htaccess с mod_rewrite (при условии, что apache). Чтобы преобразовать красивые URL-адреса во что-то вроде / about-us в / index. php?template=inner&page=о
Привет @Тал Галили :
Если предложения @Insanity5902 неприменимы, вы можете использовать HTTrack Website Copier, чтобы загрузить копию сайта, а затем загрузить загруженную копию сайта на свой сервер.