Как использовать собственный HTML файл вместо главной страницы WordPress

13 мар. 2018 г., 06:51:36
Просмотры: 23K
Голосов: 5

У меня WordPress установлен в корневой папке domain.com

Я хочу, чтобы при посещении domain.com загружался index.html, а domain.com/my-posts/ должен загружать обычные записи WordPress.

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

Будет ли работать простое переименование index.php в index.html и размещение там моего HTML контента?

6
Комментарии

Более конструктивный ответ — разместить этот файл где-нибудь и добавить правило перезаписи, которое будет обслуживать его при запросе домашней страницы. Разместите это правило перед правилами WordPress.

Mark Kaplun Mark Kaplun
13 мар. 2018 г. 07:40:53

Это можно сделать с помощью шаблона страницы: https://developer.wordpress.org/themes/template-files-section/page-template-files/

admcfajn admcfajn
13 мар. 2018 г. 08:14:17

Вопрос не глупый. Что если мне нужна кастомная HTML-лендинг страница на Bootstrap в качестве главной? И я не хочу, чтобы загружалась страница на 1.3 МБ :p

Gracie williams Gracie williams
13 мар. 2018 г. 22:13:14

Грейси, PHP выполняется на сервере и является одним из наименее значимых факторов для оптимизации скорости страницы. Тысяча строк PHP-кода может выполниться за то время, которое браузер тратит на запрос одного изображения для вашей страницы. Если только у вас не какой-то крайне специфический случай, выгода в производительности, которую можно здесь получить, не стоит усилий, ИМХО.

jdm2112 jdm2112
14 мар. 2018 г. 15:51:11

@Graciewilliams, если вы используете Bootstrap, загрузка всех его ресурсов в чистом HTML займёт гораздо больше времени, чем генерация страницы WordPress на правильно настроенном сервере, а если вы заботитесь о производительности, то будете использовать CDN, что уже подразумевает кэширование. В любом случае, лендинг — отличный пример, почему это неправильно. Разве вы не захотите использовать плагины для этой страницы (SEO, контактная форма и т.д.)? Неужели вы действительно собираетесь вручную менять каждую мелочь вместо того, чтобы использовать возможности CMS?

Mark Kaplun Mark Kaplun
14 мар. 2018 г. 20:42:16

Ок, а если только чистые CSS, JS и HTML? Я имела в виду не буквально, просто как пример.

Gracie williams Gracie williams
15 мар. 2018 г. 10:24:42
Показать остальные 1 комментариев
Все ответы на вопрос 5
3
12

Я настоятельно рекомендую вам прислушаться к уже данным советам. Если ваш PHP хорошо структурирован и вы используете методы кэширования, это не окажет значительного влияния на время загрузки страницы. У нас есть страницы с чрезвычайно сложными запросами, которые почти не оптимизированы, но благодаря умным методам кэширования мы можем обеспечить их загрузку за 500-900 мс или 2-3 с для некоторых более сложных страниц.

Это гораздо лучшее долгосрочное решение, чем использование статической HTML-страницы в качестве главной.

Тем не менее — если вы всё же хотите продолжить с использованием статической HTML-страницы (ещё раз, пожалуйста, не делайте этого, особенно если единственная причина — «скорость страницы», так как есть множество других способов уменьшить время загрузки)

... Всё ещё читаете?

Способ 1: .htaccess

«Общепринятый» способ сделать это — использовать правило .htaccess, которое применяется только к главной странице, например: RewriteRule ^$ http://example.com/path-to-html.html [L,R=301]

Способ 2: Шаблон страницы

Альтернативный вариант, чтобы сохранить некоторую связь с экосистемой WordPress — настроить шаблон страницы:

  • Добавьте файл home.php (да, PHP-файл) в директорию активной темы: /wp-content/themes/ТЕКУЩАЯ-ТЕМА/home.php.
  • Поместите следующий «Заголовок шаблона страницы» в этот файл (оставьте заметку для себя или других разработчиков, чтобы было понятнее):

    <?php
        /*
         * Template Name: Моя HTML-главная страница
         */
    ?>
    <!-- Эта страница генерируется вне WP в файле: /wp-content/themes/ТЕКУЩАЯ-ТЕМА/home.php -->
    <!-- Ваш HTML-код здесь -->
    
  • Добавьте новую страницу через Страницы > Добавить новую с узнаваемым названием, например «Моя HTML-главная страница».

  • В правой части, в селекторе Шаблона, выберите «Моя HTML-главная страница».
  • В Настройки > Чтение измените «На главной странице отображать:» на «Статическую страницу» и выберите только что созданную страницу «Моя HTML-главная страница».

Способ 3: Перенос WordPress

Вы также можете установить WordPress в поддиректорию, оставить index.html в корневой директории и использовать .htaccess, чтобы убрать /wp из URL.

Способ 4: Не делайте этого.

Ещё раз, я настоятельно рекомендую рассмотреть другие методы:

  • Использование преимуществ PHP 7.x и memcache/d
  • Плагины кэширования, такие как WP Super Cache/W3 Total Cache
  • Оптимизация изображений (вручную или с помощью WP Smush)
    • Загрузка изображений через CDN
  • Оптимизация загрузки скриптов и стилей (WP Hummingbird может помочь):
    • Объединение файлов, где это возможно
    • Минификация этих файлов
    • Их загрузка через CDN
  • Удаление ненужных плагинов, оптимизация JS-функций, удаление неиспользуемых CSS-селекторов и т. д.
14 мар. 2018 г. 20:24:18
Комментарии

У меня nginx, Wp super cache и total cache работают некорректно вместе.

Gracie williams Gracie williams
15 мар. 2018 г. 10:26:13

Существует множество руководств и документации по настройке WPSC с Nginx. В качестве альтернативы вы можете рассмотреть PHP-плагины, такие как PHPFastCache. Также убедитесь, что вы используете WP Transients API, особенно для ресурсоемких запросов.

Xhynk Xhynk
15 мар. 2018 г. 18:23:10

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

Tom J Nowell Tom J Nowell
12 окт. 2023 г. 16:58:05
2

Если ваша проблема заключается в том, что PHP или MySQL замедляют загрузку страницы, я рекомендую установить плагин кэширования и настроить кэширование страниц. Бесплатный плагин, который я использовал для этой цели — W3 Total Cache.

Кэширование страниц по сути делает то, что вам нужно — оно отдаёт статический HTML-файл с ресурсами CSS и JavaScript вместо выполнения PHP-запросов и запросов к MySQL при каждой загрузке страницы.

Оно работает, предварительно генерируя каждую страницу как статический HTML-файл, а затем отдаёт эти статические файлы вместо динамического движка WordPress на PHP/MySQL.

Это намного проще в настройке, чем управление отдельным статическим HTML-файлом для вашей целевой страницы.

14 мар. 2018 г. 19:56:49
Комментарии

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

Mark Kaplun Mark Kaplun
14 мар. 2018 г. 20:46:17

у меня он не работает нормально на nginx, та же скорость в pagespeed insights

Gracie williams Gracie williams
16 мар. 2018 г. 22:04:56
0

Я нашел простое решение с использованием index.html. Вы можете добавить свою целевую страницу index.html, а затем просто определить её в качестве домашней страницы в файле .htaccess:

DirectoryIndex index.html index.php

Это заставит использовать index.html в качестве домашней страницы, а WordPress будет обрабатывать все остальное.

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

Ответ из: https://wordpress.stackexchange.com/a/211630/64947

3 апр. 2023 г. 18:29:52
0

Другой метод, если вы используете Apache, заключается в том, чтобы дать вашему индексному файлу специальное имя и добавить это имя в начало списка DirectoryIndex. Например:

  1. Сохраните ваш статический индексный файл как index-static.html

  2. Откройте httpd.conf и отредактируйте список DirectoryIndex

    <IfModule dir_module>
      DirectoryIndex index-static.html index.php index.html
    </IfModule>
    
  3. Сохраните httpd.conf и выполните команду sudo service httpd restart

По сравнению с Методом 1 из предыдущего ответа, этот метод имеет преимущество в том, что он не изменяет URL вашей домашней страницы — то есть посетители не увидят static-index.html в адресе при посещении вашего сайта, так как перенаправление не происходит. Это, вероятно, лучше для целей SEO, а также более прозрачно для посетителей.

12 мар. 2022 г. 07:10:20
0

Также попробуйте это - вставьте этот код в файл .htaccess

RewriteRule ^(.*)index\.(php|html?)$ /$1 [R=301,NC,L]

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

24 мая 2023 г. 09:43:17