Come utilizzare un file HTML personalizzato al posto della homepage di WordPress

13 mar 2018, 06:51:36
Visualizzazioni: 23K
Voti: 5

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?

6
Commenti

Una risposta più costruttiva è avere questo file da qualche parte e aggiungere una regola di riscrittura che lo servirà quando viene richiesta la home page. Posiziona quella regola prima delle regole di WordPress

Mark Kaplun Mark Kaplun
13 mar 2018 07:40:53

Puoi farlo con un page-template: https://developer.wordpress.org/themes/template-files-section/page-template-files/

admcfajn admcfajn
13 mar 2018 08:14:17

La domanda non è sciocca, e se avessi bisogno di una landing page HTML personalizzata usando Bootstrap come homepage? E non voglio che carichi una pagina da 1.3 mb :p

Gracie williams Gracie williams
13 mar 2018 22:13:14

Gracie, PHP viene eseguito sul server ed è una delle preoccupazioni minori per l'ottimizzazione della velocità della pagina. Mille righe di codice PHP potrebbero essere eseguite nel tempo che un browser impiega a richiedere una singola risorsa immagine per la tua pagina. A meno che il tuo caso non sia un'eccezione particolare, il beneficio in termini di prestazioni che potresti ottenere qui non vale lo sforzo secondo me.

jdm2112 jdm2112
14 mar 2018 15:51:11

@Graciewilliams, se usi bootstrap, ci vorrà molto più tempo in vanilla HTML per caricare tutte le risorse di bootstrap rispetto a WordPress in esecuzione su una configurazione server adeguata per generare la pagina dinamicamente. E se ti interessa la performance userai un CDN, il che significa che hai già la cache. Comunque, la landing page è un ottimo esempio del perché questo approccio è sbagliato: non vorrai forse usare un plugin per quella pagina (SEO, modulo di contatto, ecc.)? Dovrai davvero modificare "manualmente" ogni piccola cosa quando necessario invece di sfruttare la potenza di un CMS?

Mark Kaplun Mark Kaplun
14 mar 2018 20:42:16

Ok, e se usassi solo CSS puro, JS e HTML? Non intendevo letteralmente, era solo un esempio

Gracie williams Gracie williams
15 mar 2018 10:24:42
Mostra i restanti 1 commenti
Tutte le risposte alla domanda 5
3
12

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.
14 mar 2018 20:24:18
Commenti

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

Gracie williams Gracie williams
15 mar 2018 10:26:13

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.

Xhynk Xhynk
15 mar 2018 18:23:10

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

Tom J Nowell Tom J Nowell
12 ott 2023 16:58:05
2

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.

14 mar 2018 19:56:49
Commenti

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

Mark Kaplun Mark Kaplun
14 mar 2018 20:46:17

non funziona bene per me su nginx, stessa velocità in Pagespeed Insights

Gracie williams Gracie williams
16 mar 2018 22:04:56
0

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

3 apr 2023 18:29:52
0

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:

  1. Salva il tuo file index statico come index-static.html

  2. Apri httpd.conf e modifica la lista DirectoryIndex

    <IfModule dir_module>
      DirectoryIndex index-static.html index.php index.html
    </IfModule>
    
  3. Salva httpd.conf ed esegui sudo 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.

12 mar 2022 07:10:20
0

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.

24 mag 2023 09:43:17