(SEOのために)XMLサイトマップを作成したいのですが、これを達成する最初の試みは、<?php include ("assets/includes/menu.inc"); ?>
を使用してWebサイトのメインメニュー/ナビゲーションリンクを含めることでした。
<li><a href="index.php">Home</a></li>
<li><a href="gallery.php">Gallery</a></li>
<li><a href="contact.php">Contact</a></li>
次のXMLサイトマップファイルへ:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>http://www.example.com/</loc></url>
</urlset>
私はすでに ここに質問 の「PHPをXMLに含める方法」を尋ねました-どうやらそれができないので、私の考えはビンに投げ込まれました。 「自動サイトマップの作成方法」を既にGoogleで検索しましたが、見つけようとしているのは、回避しようとしているサイトマップジェネレーターだけです。
問題は、それも可能ですか?ウェブサイトのメイン.incファイルからリンクをプルするサイトマップを作成するには?何か案は? XMLである必要がありますか?たとえばphpにできますか?
ウェブサイトのメイン.incファイルからリンクをプルするサイトマップを作成するには?
拡張子は関係ありません。だから、あなたは次のようなPHPファイルを持つことができます
<?php
header ("Content-Type:text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
// code to extract and echo links from the file
echo ' </urlset>';
?>
HTMLコードからリンクを抽出するには、 this ページを参照してください。
コードは以下のように変更する必要があります。
<?PHP
// Original PHP code by Chirp Internet: www.chirp.com.au
// Please acknowledge use of this code by including this header.
$url = "assets/includes/menu.inc";
$input = @file_get_contents($url) or die("Could not access file: $url");
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
if(preg_match_all("/$regexp/siU", $input, $matches, PREG_SET_ORDER)) {
foreach($matches as $match) {
// $match[2] = link address
// $match[3] = link text
echo '<url><loc>' . $match[2] . '</loc></url>'
}
}
?>
ここで2つの質問をしています。
サイトマップはXMLである必要がありますか?
簡単な答えはいいえです。XMLである必要はありません。 XMLファイル、テキストファイル、またはRSS/Atomフィード(基本的にXML)、HTMLサイトマップを使用できます
HTMLサイトマップ:これらは、あなたのウェブサイトで、あなたのウェブサイトのレイヤーにレイアウトを表示するために使用されます。もしたいでしょう)。残念ながら、これらは検索エンジンに送信するのには適していません。
RSSフィード:これらは、ブログ上のコメントや記事のフィードに役立ち、常に更新されており、ある意味では自動サイトマップのようなものです。ブログの新しいコンテンツ/コメントの数。
XMLファイル:これらは、簡単に言うと、リンクなどの追加フィールドと最終更新フィールドを含むXML形式のリンクのセットです。
テキストファイル:これらは以前はYahooに送信するための推奨方法でしたが、しばらく前にXMLフィードの受け入れを開始しました。
.php
拡張子を持つサイトマップを作成できますか?
基本的に、PHPファイルが返され、XMLヘッダー/ MIMEタイプが返され、有効なXMLが返される限り、問題ありません。 WordPressを見ると、RSSフィードはPHPを使用して作成されています。
PHP DOM
関数を使用して、ヘッダーを設定します。
header( "content-type: application/xml; charset=UTF-8" );
$doc = new DomDocument('1.0', 'UTF-8');
ドキュメントは次の場所にあります。
http://www.php.net/manual/en/class.domdocument.php
編集:
以前の投稿を見て、HTMLをXMLに挿入しようとしていますが、動作しません。これを行う理由を拡大できる場合は、いくつかのアドバイスを提供できる場合があります。
GWTがXMLとしてフォーマットされている限り、任意の拡張子を持つサイトマップをGWTに追加できます。私のサイトにはPHPコードがXMLを生成する.php
サイトマップがあり、完全に機能します。