web-dev-qa-db-ja.com

ヘッダー、サイドバー、フッターセクションを共通にすることで、多くのHTMLファイルから単一のHTMLファイルを作成します

HTMLのトリックが欠けているかどうかはわかりません。 100を超えるHTMLページがある単純なHTML Webサイトが1つあります。各ページのヘッダー、サイドバー、およびフッターセクションは同じですが、コンテンツは異なります。 header.php、footer.php、page.phpおよびsidebar.phpでページが形成されるWordpressのように、このサイトを単純に作成できますか。私はまだpage.phpのようなファイルで作業しなければならないことを知っています。

これにより、サイトのファイル構造が簡素化されます。また、このソリューションがSEOの観点で良いかどうかを知りたいです。

5
Sagar Nangare

WordPressなどのコンテンツ管理システムは、静的なHTMLフォームですべてをWordPressで実行できる以上にできるため、実際にはSEOを改善しません。

WordPressを使用すると、ページの管理やSEOに優しいURLの作成が非常に簡単になります。コンテンツ管理システムを使用すると、仕事が簡単になり、より多くのコンテンツを作成するための時間を節約できるようになります。

2
Simon Hayter

はい、PHPが利用可能な場合、またはそれらを呼び出すSSIディレクティブがある場合、サイトを記述し、単純なinclude()ステートメントのようなセクションに絶対に分割できます。 CMSプラットフォームが台頭する前は、これが一貫性のある簡単に変更できるセクションでサイトを作成した人の数です。

そのようにページを構築しても、SEOにプラスまたはマイナスの影響はありません。 SEOに必要なすべての要素(タイトルタグ、メタ記述、rel作成者など)を含める限り、サイトは以前と同じように機能します。

CMSのようなWordPressは、すべてのコンテンツにタイトルを要求したり、クモがクロールできるメニューシステムを自動的に生成したりすることで、SEOの「より良い」(ベストではない)プラクティスを強制します。拡張機能/モジュール/プラグインを使用すると、サイトにさらに高度なSEO技術を追加できますが、非CMSサイトで手動で行うこともできます。最終的にCMSを使用すると、サイト構築の多くの側面が自動化されるため、一部の人にとっては物事が簡単になります。しかし、その同じ自動化には欠点があり、一部の人々はすべてを手動でコーディングし、ページのすべての側面をピンポイントで制御することを好みます。最終的には、開発スタイルとサイトのニーズに最適なことを行うことにします。

1
JCL1178

独自の小さなフレームワークを作成するだけです

リクエストの非常に単純なバージョンは、次のようなものになります。

<?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;
}

main_template.htmlに一致する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>

?page=exampleまたは?page=puppiesを使用してページにリンクできるようになりました。上記のコードはページが存在するかどうかを確認するので、ロードします。


ページを切り替えるためのシンプルなフレームワークができましたが、SEOに関してはひどいです。タイトルもメタもありません。それを修正しましょう!

ミックスに少しSEOを追加しましょう

この時点で、回答を手伝うのは少し難しくなります。基本的なmysqlの機能性を持っているか、学習できるという事実に基づいて回答を行います。これは、より多くのテンプレートで実行できますが、時間を節約したい場合は、最初から適切に実行しましょう。

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);

そのコードをecho $template;の上に置き、対応するコメントをテンプレートに追加するだけです。
注意: クエリはMEGA安全ではありません。これを改善するために、mysqlインジェクションを参照してください。それは必須です!私の例はこのように読みやすいですが、本当に実装する必要があります。
注2: 勇気があるなら、「content」という列でデータベースを拡張し、テンプレートの代わりにそれをロードしてください;)

1
Martijn

はい。PHP includeステートメントを使用して、<?php include 'header.php';?>を使用してページに含める必要がある場合にヘッダー、サイドバー、フッターを呼び出すことでこれを実行できます

注:この場合、拡張子が。phtmlのファイルを作成する方がよいため、その中にHTMLまたはPHPコードを挿入できます。 <?php include'header.phtml';?>

  • Include(またはrequire)ステートメントは、指定されたファイルに存在するすべてのテキスト/コード/マークアップを取り、includeステートメントを使用するファイルにコピーします。 Webサイトの複数のページに同じPHP、HTML、またはテキストを含める場合、ファイルを含めることは非常に便利です。

  • ファイルを含めると、多くの作業が節約されます。これは、すべてのWebページに対して標準のヘッダー、フッター、またはメニューファイルを作成できることを意味します。次に、ヘッダーを更新する必要がある場合、header.phpファイルのみを更新できます。

header.php」というファイル内のヘッダーのコードがあるとします。これは次のようになります。

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

ページにヘッダーファイルを含めるには、includeステートメントを使用します。

<html>
<body>

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

</body>
</html>

Includeを使用する場合とrequireを使用する場合

Requireステートメントは、HTML/PHPコードにファイルを含めるためにも使用されます。

ただし、includeとrequireには大きな違いが1つあります。ファイルがincludeステートメントに含まれていてPHPが見つからない場合、スクリプトは実行を続けますが、requireステートメントを使用すると致命的なエラーが発生します。

  • requireは致命的なエラー(E_COMPILE_ERROR)を生成し、スクリプトを停止します
    Use require when the file is required by the application.

  • includeは警告(E_WARNING)のみを生成し、スクリプトは続行します
    Use include when the file is not required and application should continue when file is not found.

0
Cʜᴜɴ

手順1:-Webサイトフォルダーにindex.phpを作成し、index.htmlを削除します(index.htmlはindex.phpよりも優先されます)。
ステップ2:-header.phpとfooter.phpを作成し、すべてのコードをヘッダーとフッターに配置します。ステップ3:-index.phpにheader.phpとfooter.phpを含めます:-トップヘッダーの代わりに、フッター、ヘッドセクションなどにも同じことを行います。 .htmlから.phpへのファイル。

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

別のアプローチ:-ステップ1:-Twenty Thirteen WordPressテーマをダウンロードし、header.phpとfooter.phpとsidebar.phpを変更します。手順2:-ページを公開し、すべてのHTMLコンテンツ(ヘッダーとフッターを除く)をすべてのページのソースセクションにコピーします。

0

HTMLのトリックが欠けているかどうかはわかりません。

Googleは、将来、HTMLタグを介してファイルを含めることができる機能が追加されると考えています。

100を超えるHTMLページがある単純なHTML Webサイトが1つあります。各ページのヘッダー、サイドバー、およびフッターセクションは同じですが、コンテンツは異なります。 header.php、footer.php、page.phpおよびsidebar.phpでページが形成されるWordpressのように、このサイトを単純に作成できますか。私はまだpage.phpのようなファイルで作業しなければならないことを知っています。

はい。これが、今作成したphpのコードテンプレートです。

<?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>

そのテンプレートをコピーして、すべてのphpファイルを同じフォルダーに配置し、$ includepathをそのフォルダーに設定できれば、問題ありません。サイドバーにdivフロートボックスを使用しましたが、古風なものにしたい場合は、次のようなテーブルを使用できます。

<!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>

レスポンシブデザインに最適なテーブルではないため、多くの人がテーブルに眉をひそめる可能性があります。

また、このソリューションがSEOの観点で良いかどうかを知りたいです。

サーバーに機能不良のディスクがあり、要求されたファイルに不良セクタがアタッチされていないか、phpエンジンが極端に遅い場合を除き、SEOとの違いはありません。これらのことは非常にまれですが、私はそれらが起こると確信しています。 Webサイトの速度はSEOに影響します。

0
Mike