Cum să afișezi o pagină HTML statică în timpul configurării unui site WordPress?
Tocmai am instalat WordPress. Am o pagină splash non-WordPress în [folder rădăcină]/index.html. Aș dori să păstrez pagina splash activă în timp ce lucrez la personalizarea WordPress. Când încerc să accesez index.php (aflat tot în folderul rădăcină), acesta rescrie URL-ul către index.html. Nu văd index.html în URL, dar pagina splash apare și nu pot vedea niciodată WordPress.
Pot accesa panoul de administrare WordPress fără probleme. Știe cineva cum pot accesa WordPress fără a-l face public?

Poți utiliza fie un plugin (precum wp-maintenance-mode), fie poți modifica manual fișierul .htaccess pentru a redirecționa către pagina de întreținere, permițând în același timp adresei tale IP (sau echipei tale) să ocolească redirecționarea. Iată un exemplu:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1
RewriteCond %{REQUEST_URI} !/splashpage.html$ [NC]
RewriteRule .* /maintenance.html [R=302,L]
</IfModule>
Referitor la întrebarea ta de ce index.html este servit din directorul root, acest lucru se întâmplă deoarece, în mod obișnuit, acesta are prioritate față de index.php. Dacă dorești să modifici acest comportament, va trebui să ajustezi directiva DirectoryIndex.
EDIT: Am considerat că este evident, dar pentru claritate: 127.0.0.1 ar trebui înlocuit cu adresa ta IP publică. De asemenea, reține că codul 302 reprezintă o redirecționare temporară, ceea ce este exact ceea ce dorim în acest caz.

Deoarece nu pot comenta la răspunsurile altora, aș dori doar să menționez că îmi place foarte mult răspunsul lui @s_ha_dum, dar ar trebui să fiți atenți, deoarece Wordpress Codex afirmă clar:
Nu transmiteți un nume de rol către current_user_can()
, deoarece acest lucru nu este garantat să funcționeze corect.

Am încercat sugestia dumneavoastră și nu a avut niciun efect. Vreau ca index.html să fie afișat. De asemenea, vreau să accesez manual pagina Wordpress index.php. Dar asta provoacă redirecționarea către index.html. Nu sunt sigur de ce spuneți "redirecționare către pagina de splash". Exact asta nu vreau să se întâmple. Chiar dacă șterg complet .htaccess, tot ajung la rescrieri.

@Sunyatasattva, codul sursă spune "@param string $capability Capabilitate sau nume de rol.". Mă întreb când a fost adăugat acest lucru în Codex sau de cine?

@4thSpace Din câte am înțeles, doreai să ai acces complet la WordPress fără ca acesta să fie live și să redirecționezi utilizatorii neautorizați către o pagină personalizată de prezentare pe care ai numit-o index.html. Când am spus "redirecționare către pagina de prezentare", mă refeream la redirecționarea altor utilizatori către acea pagină, nu pe tine. În primul rând, pentru ca sugestia mea să funcționeze, ai editat 127.0.0.1 cu adresa ta IP publică?

@s_ha_dum Într-adevăr ai dreptate. Poate că avertizarea se referă la faptul că transmiterea numelui rolului cu majuscule nu va funcționa corect, de aceea "nu este garantat"? Nu sunt sigur.

@4thSpace Atunci ar trebui să poți vedea corect index.php atunci când accesezi rădăcina. Încearcă să redenumești index.html în ceva care nu are o semnificație specială pentru server (cum ar fi splashpage.html). De asemenea, încearcă să schimbi adresa IP care este permisă pentru a verifica dacă utilizatorii neautorizați sunt redirecționați corect către pagina ta de splash.

Cred că cea mai ușoară metodă de a realiza acest lucru este editarea fișierului .htaccess din directorul rădăcină al site-ului web și plasarea acestui cod în partea de sus:
DirectoryIndex index.html index.php
Această modificare schimbă ordinea de prioritate în care Apache alege ce fișier să utilizeze.

Încearcă asta.
function temp_page_redirect() {
if (!current_user_can('administrator')) {
wp_safe_redirect('temp.html',307);
}
}
add_action('template_redirect','temp_page_redirect');
Nu am folosit index.html
deoarece acel nume de fișier are o semnificație specială pentru server. '307' este un cod de stare care înseamnă redirecționare temporară. Am presupus că rolul de 'administrator' are nevoie de acces :)

Aceasta funcționează perfect. Adaugă un nou director pentru plugin cu acest fișier ca index.php.
Din discuția de suport:
"Pentru a răspunde la întrebarea inițială, poți dezactiva redirecționarea canonică prin plasarea acestui cod în directorul tău de pluginuri –"
<?php
/*
Plugin Name: Dezactivează Redirecționarea URL Canonic
Description: Dezactivează funcționalitatea de "Redirecționare URL Canonic" din WordPress 2.3 și versiuni superioare.
Version: 1.0
Author: Mark Jaquith
Author URI: http://markjaquith.com/
*/
remove_filter('template_redirect', 'redirect_canonical');
?>
Aceasta a ajutat mulți oameni acolo și ar putea fi un răspuns potrivit și aici.

Un singur link este considerat un răspuns slab (vezi [FAQ#deletion]) deoarece este lipsit de sens prin sine și resursa țintă nu este garantată să fie disponibilă în viitor. Încercați să includeți cel puțin un rezumat al informațiilor la care faceți referire.

- Deschideți site-ul cu un program FTP
- navigați la /wp-content/plugins/
- creați un folder nou cu orice nume
- creați un index.php și puneți codul PHP din comentariile de cod de mai sus (folosiți tot ce se află în caseta de cod de mai sus) și copiați în noul folder
- accesați panoul de administrare WordPress și activați acest nou plugin
