web-dev-qa-db-fra.com

Créez un fichier HTML unique à partir de nombreux fichiers HTML en conservant le même en-tête, la barre latérale et le pied de page

Je ne sais pas si je manque un truc en HTML. J'ai un simple site Web HTML qui compte plus de 100 pages HTML. Pour chaque page, l'en-tête, la barre latérale et la section de pied de page sont les mêmes mais le contenu est différent. Est-ce que je peux simplement faire ce site comme Wordpress où la page est formée par header.php, footer.php, page.php & sidebar.php. Je sais que je devrai toujours travailler sur le type de fichiers page.php.

Cela simplifiera la structure de fichier du site. Aussi, je veux savoir si cette solution est bonne en perspective SEO ou non.

5
Sagar Nangare

Les systèmes de gestion de contenu tels que WordPress n'améliorent pas vraiment le référencement puisque vous pouvez tout faire sous forme HTML statique par rapport à WordPress.

WordPress simplifie énormément la gestion de vos pages et la création d'URL conviviales pour le référencement. L'utilisation d'un système de gestion de contenu devrait vous faciliter la tâche et vous permettre de gagner du temps pour créer encore plus de contenu. Si nous économisons du temps et du temps sur la construction de pages, alors, oui, cela améliore le référencement.

2
Simon Hayter

Oui, vous pouvez absolument diviser votre site en sections comme vous le décrivez et utiliser des instructions include () simples si PHP est disponible ou des directives SSI pour les appeler. Avant l'ascension des plates-formes CMS, voici combien de personnes ont créé des sites avec des sections cohérentes et faciles à modifier.

Construire vos pages de cette façon n'a aucun effet positif ou négatif sur le référencement. Tant que vous incluez tous les éléments nécessaires au référencement (balises de titre, méta-description, auteur associé, etc.), votre site fera aussi bien qu’avant.

Ce que font les CMS WordPress pour vous, c'est vous forcer à adopter de "meilleures" pratiques (et non des meilleures) pour le référencement, en demandant par exemple des titres à tout le contenu et en générant automatiquement un système de menus pouvant être analysé par une araignée. En utilisant des extensions/modules/plugins, vous pouvez ajouter des techniques de référencement avancées au site, mais vous pouvez également le faire manuellement sur un site non-CMS. En fin de compte, travailler avec un CMS facilite la tâche de certaines personnes en automatisant de nombreux aspects de la construction de sites. Mais cette même automatisation présente des inconvénients et certaines personnes préfèrent tout coder à la main et conserver un contrôle précis sur tous les aspects de la page. En fin de compte, vous déciderez de faire ce qui convient le mieux à votre style de développement et aux besoins de votre site.

1
JCL1178

Créez simplement votre propre petit cadre

Une version très simple de votre demande pourrait ressembler à ceci:

<?php
$templateLocation = $_SERVER['DOCUMENT_ROOT'].'/templates';
$defaultPage = 'home';
// Open your page with the frame, the footer , header etc
$template = file_get_contents($templateLocation.'/main_template.html');

// Get the page from the url, or use a default
$page = isset($_GET['page']) ? $_GET['page'] : $defaultPage;

// Check if the page exists:
if( !file_exists($templateLocation.'/pages/'.$page.'.html') ){
    // if it doest exist, go to the homepage (and tell bots 404, page not existing):
    header("Location: /".$defaultPage, true, 404); 
    exit;
}
else{
    // Get the content of the requested page
    $pageContent = file_get_contents($templateLocation.'/pages/'.$page.'.html');
    // Place it in our main page
    $template = str_replace("<!-- CONTENT -->", $pageContent, $template);
    // Put it on the screen:
    echo $template;
}

Exemple html correspondant pour main_template.html:

<html>
<body>
    <header> <img src="my-logo.jpg" alt="Logo"/> </header>
    <div id="PageContent"><!-- CONTENT --></div>
    <footer> Some neat information right here</footer>
</body>
</html>

Vous pouvez maintenant créer un lien vers vos pages avec ?page=example ou ?page=puppies et le code ci-dessus vérifiera si la page existe, si -> chargez-la.


Nous avons maintenant un cadre simple pour changer de page, mais sur le plan du référencement, c'est terrible. Pas de titres, pas de méta. Réglons ça!

Ajoutons un peu de référencement au mix

À ce stade, il est un peu plus difficile de vous aider avec une réponse. Je vais fonder ma réponse sur le fait que vous avez ou pouvez apprendre les fonctionnalités de base de MySQL. Cela pourrait être fait avec plus de modèles, mais vous voulez gagner du temps, faisons-le correctement dès la première fois.

Créez simplement une table de base de données avec les colonnes id,url,title,description

<?php
$sPageInfo = mysqli_query("SELECT * FROM pages WHERE url='".$page."' LIMIT 1");
$fPageInfo = $sPageInfo->fetch_assoc(); // fetch the selected values
$template = str_replace("<!-- SEO_TITLE -->", $fPageInfo['title'], $template);
$template = str_replace("<!-- SEO_DESCRIPTION -->", $fPageInfo['description'], $template);

Placez simplement ce morceau de code au-dessus de votre echo $template; et ajoutez les commentaires correspondants à votre modèle.
Remarque: La requête est MEGA non sécurisée, lisez sur les injections mysql pour améliorer cela. C'est un must! Mon exemple est plus facile à lire, mais vous devriez VRAIMENT l’appliquer.
Note 2: Si vous vous sentez courageux, développez votre base de données avec une colonne appelée 'contenu' et chargez-la à la place d'un modèle;)

1
Martijn

Oui, vous pouvez le faire en utilisant l'instruction PHP include pour appeler votre en-tête, votre barre latérale et votre pied de page chaque fois que vous devez les inclure dans une page à l'aide de <?php include 'header.php';?>.

Note: Dans ce cas, il serait préférable de créer des fichiers avec l'extension . Phtml, afin que vous puissiez y insérer du code HTML ou PHP. <?php include'header.phtml';?>

  • L'instruction include (ou require) prend tout le texte/code/marquage existant dans un fichier spécifié et le copie dans le fichier qui utilise l'instruction include. L'inclusion de fichiers est très utile lorsque vous souhaitez inclure le même code PHP, HTML ou texte sur plusieurs pages d'un site Web.

  • Y compris les fichiers enregistre beaucoup de travail. Cela signifie que vous pouvez créer un en-tête, un pied de page ou un fichier de menu standard pour toutes vos pages Web. Ensuite, lorsque l'en-tête doit être mis à jour, vous pouvez uniquement mettre à jour le fichier header.php.

Disons que nous avons un code pour l'en-tête dans un fichier appelé "header.php" qui ressemble à ceci:

<header class="header">Welcome to my website!</header>

Pour inclure le fichier d'en-tête dans une page, utilisez l'instruction include:

<html>
<body>

<?php include 'header.php';?>
<p>Some text.</p>
<p>Some more text.</p>
<footer class="footer"> ... </footer>

</body>
</html>

Quand utiliser inclure et quand utiliser besoin?

L'instruction require est également utilisée pour inclure un fichier dans le code HTML/PHP.

Cependant, il existe une grande différence entre inclure et exiger. Lorsqu'un fichier est inclus dans l'instruction include et que PHP ne peut pas le trouver, le script continue de s'exécuter. Toutefois, lors de l'utilisation de l'instruction require, une erreur fatale est générée:

  • require produira une erreur fatale (E_COMPILE_ERROR) et arrêtera le script
    Use require when the file is required by the application.

  • include ne produira qu'un avertissement (E_WARNING) et le script continuera
    Use include when the file is not required and application should continue when file is not found.

0
Cʜᴜɴ

Étape 1: - Créez un fichier index.php dans votre dossier de site Web et supprimez index.html. (Index.html a la préférence sur index.php)
Étape 2: - Créez un header.php et un footer.php et placez tout votre code dans l'en-tête et le pied de page. Étape 3: - Incluez maintenant header.php et footer.php dans index.php: - à la place du contenu d'en-tête supérieur, procédez de la même manière pour le pied de page, la section head, etc. Étape 4: - Vous devrez modifier les extensions de tous. fichiers au format .php à partir de .html.

<html> 
<head> 
<title>Page title</title> 
<?php include('header.php'); ?> 
</head> 
<body> 
enter content here
<?php include('footer.php'); ?> 
</body>
</html>

Une autre approche: - Étape 1: - Téléchargez vingt-treize WordPress Thème et modifiez simplement header.php et footer.php et sidebar.php. Étape 2: - Publiez des pages et copiez tout le contenu HTML (à l'exclusion de l'en-tête et du pied de page) dans la section source de chaque page.

0

Je ne sais pas si je manque un truc en HTML.

Google pense qu'à l'avenir, il y aura une fonctionnalité permettant d'inclure des fichiers via une balise HTML.

J'ai un simple site Web HTML qui compte plus de 100 pages HTML. Pour chaque page, l'en-tête, la barre latérale et la section de pied de page sont les mêmes mais le contenu est différent. Est-ce que je peux simplement faire ce site comme Wordpress où la page est formée par header.php, footer.php, page.php & sidebar.php. Je sais que je devrai toujours travailler sur le type de fichiers page.php.

Oui. Voici un modèle de code en php que j'ai créé maintenant et qui fonctionnera:

<?php 
$includepath="/path/to/your/includefiles";
chdir($includepath); 
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Test</title>
</head>
<body>
<?php include "header.php"; ?>
<div>
<div style="float:right;">
<?php include "sidebar.php"; ?>
</div>
<!-- Main page content goes here -->
</div>
<?php include "footer.php"; ?>    
</body>
</html>

Si vous pouvez copier ce modèle et mettre tous les fichiers php dans le même dossier et définir $ includeepath dans ce dossier, tout ira bien. J'ai utilisé une boîte flottante div pour une barre latérale, mais si vous voulez aller à l'ancienne, vous pouvez utiliser un tableau comme suit:

<!DOCTYPE HTML>
<html>
<head>
<title>Test</title>
</head>
<body>
<?php include "header.php"; ?>
<table>
<tr>
<td>
<!-- Main page content goes here -->
</td>
<td>
<?php include "sidebar.php"; ?>
</td>
</tr>
</table>
<?php include "footer.php"; ?>    
</body>
</html>

La seule chose avec une table est que beaucoup de personnes peuvent en froncer les sourcils parce que ce n'est pas la meilleure chose à utiliser pour un design réactif.

Aussi, je veux savoir si cette solution est bonne en perspective SEO ou non.

Cela ne fera aucune différence avec le référencement sauf si votre serveur a un disque qui fonctionne mal avec des secteurs défectueux attachés aux fichiers demandés ou si le moteur php est extrêmement lent. Ces choses sont extrêmement rares, mais je suis sûr qu'elles se produisent. La vitesse du site Web affecte le référencement.

0
Mike