Movable Type 5:演習:Website に置くsaitemap.xml テンプレート内のウェブページリスト
ウェブマスターツールに送信するなどする、sitemap.xmlにウェブサイト下のウェブページを載せたい時のテンプレートの記述です。
以下を前提とします
- sitemap.xml はウェブサイトテンプレートの管理でカスタムインデックスとして作成する
- ブログはウェブサイト配下にあり、ブログを上位階層にあげていないこと
- ウェブページはすべてをアーカイブテンプレートのウェブページで作成されているものとする。ディレクトリトップとなるページを index というファイル名で作成する(テンプレートタグだけでインデックステンプレートの Last Modifiedを得ようとすると面倒なので)
手順は、ウェブサイト(サイトのトップに該当するページ)の管理画面のテンプレートの管理を開き、任意のテンプレート名でsitemap.xml を作成します。
再構築さえしなければ一旦保存にしておいてもかまいません。
作成例
<?xml version='1.0' encoding='UTF-8'?> <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <mt:Websites> <MTIfArchiveTypeEnabled archive_type="Page"><MTPages lastn="0"> <url> <loc><$MTPagePermalink encode_xml="1"$></loc> <lastmod><$MTPageModifiedDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod> </url> </MTPages></MTIfArchiveTypeEnabled> </mt:Websites> </urlset>
*この例は、ウェブページのみ対象にしてるが、実際の運用ではブログとその配下のウェブページなども含めることになるので、MTBlogs タグのループも追加するようになる。
ちなみにここではseoについて解説するつもりはないので、詳細までは触れませんが、複数サイトマップを作成して管理する方法は以下に記されています。
簡単な説明
MTWebSites : ウェブサイトを対象とする
MTIfArchiveTypeEnabled : ウェブページアーカイブが利用可能かどうか
MTPages : ウェブページアーカイブを対象にループ
MTPagePermalink: ウェブサイト下のウェブページに対するパーマリンク ( loc要素 )
MTPageModifiedDate: ウェブページの最終更新日 フォーマットはW3C Datetime 形式エンコード (英文ドキュメント) ( lastmod 要素)
テンプレートができたら、とりあえずプレビューでみてみる。MTのプレビューのソースの確認は、フレーム内のほうのソースを確認する。
パースエラーがおこっていると、ブラウザで警告がでたりするのでそのときは修正する。開始・終了タグの対応が違っていないかよく確認する。
問題がなければ、再構築してファイルを出力する。この出力されたファイル(sitemap.xml)を、Google ウェブマスターツールの、[最適化] - [サイトマップ] の [サイトマップの追加/テスト] クリックした時のフォームに入力するか、既に作成済ならば、リストに出ているサイトマップファイルをクリックして、サイトマップをテストをクリックしてエラーがでていないか確認する。
はてなブックマークマイページなどでhttp記法を追加表示させるGMスクリプト
はてなブログでは、ブックマーク連携がありますが、ブックマークしたばかりの記事なら貼付けしやすいけど、過去エントリーについてはやりにくいことが分かったので作ることにしました。
http記法は、以下のドキュメントを参考にしました。
ブックマーク数表示をするオプションをつけた形で、title= とあわせる(:title:bookmark とすると、記事タイトルがわかりにくいため)形式で出力するようにしてみました。
// ==UserScript== // .@name Add Hatebu HTTP notation // .@namespace https://labs.markdiary.com/ // .@description Add to hatena HTTP notation // .@include http://b.hatena.ne.jp/* // .@version 1.0 // ==/UserScript== window.onload= function(){ function add_notation(){ var d=document, id=d.getElementById("bookmarked_user")||d.getElementById("page-content"), nd=[],i, el, cl, link; if(id){ el = id.getElementsByTagName("a"); for(i=0; i<el.length; i++){ cl = el[i].className; if( cl == "entry-link" ){ link = el[i].getAttribute("href"); nd[i] = document.createElement("input"); nd[i].type = "text"; nd[i].value = "[" + link + ":title=" + el[i].firstChild.nodeValue +":bookmark]"; nd[i].setAttribute("readonly", "true"); nd[i].setAttribute("onclick", "this.select();"); el[i].parentNode.appendChild(nd[i]); } } } } setTimeout ( add_notation, 2500 ); };
ブックマークレット 置き場
いちおう、新旧のブックマークページで表示を確認していますが、検索ページでの表示には対応してません(旧ブックマークのhttp://b.hatena.ne.jp/my/search?q= のリクエストのページでは表示できたので、個人的にはこれで目的は達成出来たので)。