Cómo usar un archivo HTML personalizado en lugar de la página de inicio de WordPress
Tengo WordPress instalado en la carpeta raíz de domain.com
Quiero cargar index.html cuando se visite domain.com y que domain.com/my-posts/ cargue las publicaciones normales de WordPress.
Estoy haciendo esto para aumentar la velocidad de mi página de inicio de WordPress. No quiero que haya PHP involucrado.
¿Funcionará si renombro index.php a index.html y coloco mi contenido HTML?

Te recomiendo encarecidamente que sigas los consejos ya dados. Si tu PHP está bien estructurado y aprovechas los métodos de caché, no tendrá un aumento significativo en el tiempo de carga de tu página. Tenemos páginas con consultas extremadamente complejas que están poco optimizadas, pero usando algunos métodos inteligentes de caché, logramos que esas páginas se sirvan en 500-900ms, o 2-3s para algunas de las páginas mucho más complejas.
Es una solución mucho mejor a largo plazo que usar una página HTML estática como tu página de inicio.
Dicho esto - si aún deseas proceder con una página de inicio HTML estática (nuevamente, por favor no lo hagas, especialmente si la única razón es "velocidad de página", ya que hay muchas otras formas de disminuir el tiempo de carga de tu página)
... ¿Sigues leyendo?
Método 1: .htaccess
La forma... ... "generalmente aceptada" de hacer esto es con una regla de .htaccess
que apunte solo a tu página de inicio, como RewriteRule ^$ http://ejemplo.com/ruta-al-html.html [L,R=301]
Método 2: Plantilla de página
Alternativamente, para mantener algún parecido con el ecosistema de WordPress sería configurar una Plantilla de página
- Añade un archivo
home.php
(sí, archivo PHP) a tu directorio de tema activo:/wp-content/themes/TEMA-ACTUAL/home.php
. Coloca el siguiente "Encabezado de Plantilla de Página" en ese archivo (deja una nota para ti mismo en el futuro o para otros desarrolladores que diga dónde está el archivo para que sea menos confuso):
<?php /* * Template Name: Mi Página de Inicio HTML */ ?> <!-- Esta página se genera fuera de WP por: /wp-content/themes/TEMA-ACTUAL/home.php --> <!-- Tu código HTML aquí -->
Añade una nueva Página con Páginas > Añadir nueva con un nombre reconocible, como "Mi Página de Inicio HTML"
- En el lado derecho, en el selector de Plantilla, elige "Mi Página de Inicio HTML" como la plantilla.
- En Ajustes > Lectura cambia "Tu página de inicio muestra:" a "Una página estática", y elige la página "Mi Página de Inicio HTML" que acabas de añadir.
Método 3: Mueve tu instalación de WordPress
También puedes instalar WordPress en un subdirectorio, tener index.html
en el directorio raíz, y usar .htaccess para eliminar el /wp de tus URLs.
Método 4: No lo hagas.
Nuevamente, te recomiendo encarecidamente que consideres otros métodos:
- Aprovechar PHP 7.x y memcache/d
- Plugins de caché como WP Super Cache/W3 Total Cache
- Optimizar tus imágenes (manualmente o con WP Smush)
- Servir imágenes desde una CDN
- Optimizar la entrega de Scripts/Estilos (WP Hummingbird puede ayudar con esto):
- Combinar archivos donde sea apropiado/posible
- Minificar esos archivos
- Servir esos archivos desde una CDN
- Eliminar plugins innecesarios de WP, optimizar funciones JS, eliminar selectores CSS no utilizados, etc.

Tengo nginx, Wp super cache y total cache no funcionan correctamente con él.

Hay bastantes tutoriales y otros documentos sobre cómo configurar WPSC con Nginx. Alternativamente, también podrías considerar un plugin de PHP como PHPFastCache. Además, asegúrate de aprovechar la API de Transients de WP, especialmente para consultas costosas.

Ten en cuenta que WP usará automáticamente la plantilla home.php
para la página de inicio si está en el tema, todo esto extra sobre páginas y cabeceras de plantillas de página y entrar en configuraciones es completamente innecesario a menos que quieras hacer la página de inicio editable en un constructor de páginas o almacenar cosas contra una página

Si tu preocupación es que PHP o MySQL están causando que la velocidad de carga de la página disminuya, te recomiendo instalar un plugin de Caché y configurar el Caché de Página. Un plugin gratuito que he usado para este propósito es W3 Total Cache
El caché de página esencialmente hace lo que estás buscando, que es servir un archivo HTML estático con recursos CSS y Javascript, en lugar de ejecutar PHP y consultas MySQL cada vez que se carga una página.
Logra esto pre-generando cada página como un archivo HTML estático, y luego sirve esos archivos estáticos en lugar del motor dinámico PHP/MySQL de WordPress.
Es mucho más fácil de configurar que tener que gestionar un archivo HTML estático separado para tu página de destino.

nota al margen: según mi experiencia, W3TC es una basura imposible de depurar. Entiendo que a ti te ha funcionado mejor que a mí, pero sentí la necesidad de dejar aquí una nota de que hay otros plugins que podrían ser mejores

Encontré un enfoque sencillo para esto usando index.html. Puedes agregar tu página de destino index.html y luego simplemente necesitas definirla como tu página de inicio en tu archivo .htaccess:
DirectoryIndex index.html index.php
Esto forzará que tu página de inicio sea index.html y dejará que WordPress se encargue del resto del trabajo pesado.
Estoy seguro de que hay muchas otras razones para los buenos consejos mencionados anteriormente, pero necesitaba una página de destino simple para tomar el control de las funciones integradas de redirección y gestión de usuarios de un tema de intranet.
Respuesta de: https://wordpress.stackexchange.com/a/211630/64947

Otro método si estás usando Apache es nombrar tu archivo índice de manera especial y anteponer ese nombre a tus DirectoryIndex. Por ejemplo:
Guarda tu archivo índice estático como
index-static.html
Abre
httpd.conf
y edita la lista deDirectoryIndex
<IfModule dir_module> DirectoryIndex index-static.html index.php index.html </IfModule>
Guarda
httpd.conf
y ejecutasudo service httpd restart
En comparación con el Método 1 de la respuesta anterior, este método tiene el beneficio de no modificar la URL de tu página de inicio — es decir, los visitantes no verán static-index.html
añadido al dominio cuando visiten tu sitio porque no ocurre ninguna redirección. Esto probablemente sea mejor para fines de SEO, además de ser transparente para los visitantes.

También prueba esto: pega este código en el archivo .htaccess
RewriteRule ^(.*)index\.(php|html?)$ /$1 [R=301,NC,L]
Este código redirigirá tu archivo index.php y lo cargará en el navegador. Si has utilizado un nombre sensible a mayúsculas/minúsculas para la carpeta o alguno de los archivos, también funcionará para redirigirlos y mostrarte su contenido.
