Come utilizzare un file HTML personalizzato al posto della homepage di WordPress
Ho WordPress installato nella cartella root di domain.com
Vorrei caricare index.html quando viene visitato domain.com mentre domain.com/my-posts/ dovrebbe caricare i normali post WordPress.
Sto facendo questo per aumentare la velocità della mia homepage WordPress. Non voglio che venga utilizzato PHP.
Funzionerà rinominando index.php in index.html e inserendo il mio contenuto HTML?

Ti consiglio fortemente di seguire i consigli già forniti. Se il tuo PHP è ben strutturato e sfrutti i metodi di caching, non avrà un impatto significativo sul tempo di caricamento della pagina. Abbiamo pagine con query estremamente complesse e poco ottimizzate, ma utilizzando alcuni intelligenti metodi di caching, riusciamo a servire quelle pagine in 500-900ms, o 2-3s per alcune delle pagine molto più complesse.
È una soluzione molto migliore a lungo termine rispetto all'utilizzo di una pagina HTML statica come homepage.
Detto questo - se desideri comunque procedere con un'homepage HTML statica (ancora una volta, ti prego di non farlo, soprattutto se l'unica motivazione è "la velocità della pagina", dato che ci sono così tanti altri modi per ridurre il tempo di caricamento)
... Stai ancora leggendo?
Metodo 1: .htaccess
Il... ... modo "generalmente accettato" per farlo è con una regola .htaccess
che targetta solo la tua homepage, come RewriteRule ^$ http://example.com/path-to-html.html [L,R=301]
Metodo 2: Template di Pagina
In alternativa, per mantenere una certa somiglianza con l'ecosistema WordPress sarebbe impostare un Template di Pagina
- Aggiungi un file
home.php
(sì, un file PHP) alla directory del tema attivo:/wp-content/themes/TEMA-CORRENTE/home.php
. Inserisci il seguente "Intestazione del Template di Pagina" in quel file (lascia una nota a te stesso futuro/ai colleghi dev che spieghi dove si trova il file per evitare confusione):
<?php /* * Template Name: La mia Homepage HTML */ ?> <!-- Questa pagina è generata al di fuori di WP da: /wp-content/themes/TEMA-CORRENTE/home.php --> <!-- Il tuo codice HTML qui -->
Aggiungi una nuova Pagina con Pagine > Aggiungi Nuova con un nome riconoscibile, come "La mia Homepage HTML"
- Sul lato destro, nel selettore Template, scegli "La mia Homepage HTML" come template.
- In Impostazioni > Lettura cambia "La tua Homepage mostra:" in "Una pagina statica", e seleziona la pagina "La mia Homepage HTML" che hai appena aggiunto.
Metodo 3: Sposta l'installazione di WordPress
Puoi anche installare WordPress in una sottodirectory, avere index.html
nella directory root, e usare .htaccess per rimuovere /wp dai tuoi URL.
Metodo 4: Non farlo.
Ancora una volta, ti esorto fortemente a considerare altri metodi:
- Sfruttare PHP 7.x e memcache/d
- Plugin di caching come WP Super Cache/W3 Total Cache
- Ottimizzare le tue immagini (manualmente o con WP Smush)
- Servire le immagini da un CDN
- Ottimizzare la consegna di Script/Stile (WP Hummingbird può aiutare):
- Combina i file dove appropriato/possibile
- Minifica quei file
- Servi quei file da un CDN
- Rimuovi plugin non necessari da WP, ottimizza le funzioni JS, rimuovi selettori CSS non utilizzati, ecc.

Ho nginx, Wp super cache e total cache che non funzionano bene con esso.

Ci sono diversi tutorial e documenti disponibili su come configurare WPSC con Nginx. In alternativa, potresti considerare un plugin PHP come PHPFastCache. Assicurati anche di sfruttare l'API WP Transients, specialmente per le query complesse.

Nota che WP utilizzerà automaticamente il template home.php
per la homepage se è presente nel tema, tutte queste cose aggiuntive su pagine, intestazioni dei template di pagina e impostazioni sono completamente superflue a meno che tu non voglia rendere la homepage modificabile con un page builder o memorizzare elementi relativi a una pagina

Se la tua preoccupazione è che PHP o MySQL stiano causando un rallentamento nel tempo di caricamento della pagina, ti consiglio di installare un plugin di caching e configurare il Page Caching. Un plugin gratuito che ho utilizzato per questo scopo è W3 Total Cache.
Il page caching fa essenzialmente quello che stai cercando, cioè servire un file HTML statico con asset CSS e Javascript, invece di eseguire PHP e query MySQL ogni volta che una pagina viene caricata.
Funziona pre-generando ogni pagina come file HTML statico, e poi servendo questi file statici al posto del motore dinamico PHP/MySQL di WordPress.
È molto più semplice da configurare rispetto alla gestione di un file HTML statico separato per la tua landing page.

nota a margine: dalla mia esperienza, W3TC è un programma indebuggabile. Capisco che tu abbia avuto un'esperienza migliore della mia, ma sentivo il bisogno di lasciare qui una nota che ci sono altri plugin che potrebbero essere migliori

Ho trovato un approccio semplice per questo utilizzando index.html. Puoi aggiungere la tua pagina di destinazione index.html e poi devi semplicemente definirla come pagina di destinazione nel tuo file .htaccess:
DirectoryIndex index.html index.php
Questo forzerà la tua homepage a utilizzare la pagina index.html e lascerà che WordPress si occupi di tutto il resto del lavoro pesante.
Sono sicuro che ci siano molte altre ragioni per i buoni consigli sopra, ma avevo bisogno di una semplice pagina di destinazione per sostituire le funzioni integrate di reindirizzamento e gestione utenti di un tema intranet.
Risposta da: https://wordpress.stackexchange.com/a/211630/64947

Un altro metodo, se stai utilizzando Apache, è quello di nominare il tuo file index in modo speciale e anteporre quel nome ai tuoi DirectoryIndex. Ad esempio:
Salva il tuo file index statico come
index-static.html
Apri
httpd.conf
e modifica la listaDirectoryIndex
<IfModule dir_module> DirectoryIndex index-static.html index.php index.html </IfModule>
Salva
httpd.conf
ed eseguisudo service httpd restart
Rispetto al Metodo 1 nella risposta precedente, questo metodo ha il vantaggio di non modificare l'URL della tua homepage - cioè, i visitatori non vedranno static-index.html
aggiunto al dominio quando visitano il tuo sito perché non avviene alcun reindirizzamento. Questo è probabilmente meglio per fini SEO oltre ad essere trasparente per i visitatori.

Prova anche questo - incolla questo codice nel file .htaccess
RewriteRule ^(.*)index\.(php|html?)$ /$1 [R=301,NC,L]
Questo codice reindirizzerà il tuo file index.php e lo caricherà nel browser. Se hai utilizzato un nome con distinzione tra maiuscole e minuscole per la cartella o per uno qualsiasi dei file, funzionerà anche per reindirizzarli e mostrarti il loro contenuto.
