web-dev-qa-db-fra.com

Page non-WordPress dans le sous-répertoire sous la page WordPress

Je souhaite une page non-WordPress accessible à partir d'un répertoire parent, à savoir une page WordPress.

Par exemple, je veux que http://example.com/city/ soit une page WordPress. Cependant, je souhaite télécharger une page autre que WordPress dans le dossier /city/pricing/ sur le serveur. Lorsque j'essaie, je peux accéder à http://example.com/city/pricing/ et cela fonctionne, mais WordPress ne chargera pas http://example.com/city/ car le serveur voit le répertoire /city/ et recherche un fichier d'index.

Est-il même possible pour moi de créer /city/ en tant que page WordPress, mais d'avoir /city/pricing/ en tant que page HTML statique autre que WordPress? Sinon, je peux une solution différente, mais je voulais voir si cela était possible en premier.

4
mediocre_bro

Comme @MarkKaplun le suggère, il serait préférable de stocker ce fichier non-WordPress dans une zone différente du système de fichiers et de réécrire l'URL dans .htaccess. Au lieu d'imiter l'URL WordPress dans la structure de répertoire physique - ce qui ne vous causera probablement que (plusieurs) problèmes (notamment que vous auriez besoin de remplacer le contrôleur frontal WordPress).

Par exemple, au lieu d'enregistrer votre page non-WordPress sous /city/pricing/index.php, enregistrez-la sous /non-wordress/city-pricing.php (par exemple) ou /non-wordress/city/pricing/index.php (si cela permet, en développement, de copier la structure du chemin d'accès - mais cela ne fait aucune différence pour l'URL résultante, car cela la structure du répertoire est complètement cachée à l'utilisateur final).

Ensuite, dans .htaccess before le contrôleur frontal de WordPress (c.-à-d. before la section # BEGIN WordPress), vous pouvez faire quelque chose comme:

RewriteRule ^city/pricing/$ /non-wordpress/city-pricing.php [L]

Ceci réécrit en interne /city/pricing/ en /non-wordpress/city-pricing.php - ceci est entièrement caché de l'utilisateur final.

Mais le stress, ce doit aller avant le contrôleur frontal WordPress, sinon vous obtiendrez simplement un 404.

5
MrWhite

Vous pouvez le faire en ajoutant une règle à htaccess qui chargera cette page pour cette URL spécifique et en ajoutant la règle avant les règles wordpress. Pour cela, il n’est pas important de savoir où se trouve exactement la page sur le disque, tant que vous écrivez la règle correcte.

Mais pour moi, cela semble faux et il est bien préférable de convertir la page en un modèle de page wordpress en ajoutant l’en-tête approprié et de l’ajouter comme vous ajoutez une autre page wordpress "en dessous" de votre page principale. Réalisez rapidement que vous voudrez pouvoir utiliser les hooks wp_footer et wp_head, vous finirez probablement de le faire dans tous les cas.

4
Mark Kaplun