$value ) if( $value['eid'] == $eid ) return $value; return null; } function RecommendedEntry_updateIndexFile( $eid_updated, $eid, $direction ) { $filename = '/var/www/VirtualDomain/kenji00.com/blog/recommend_data'; is_dir( $filename ) || mkdir( $filename ); $filename .= '/'. substr( $eid_updated, -1 ); is_dir( $filename ) || mkdir( $filename ); $filename .= sprintf( '/%d.txt', $eid_updated); file_exists( $filename ) || touch( $filename ); $fp = @fopen( $filename, 'r+' ); if( $fp ) { if( flock( $fp, LOCK_EX | LOCK_NB )) { $ret = ''; $not_found = 1; while( !feof( $fp ) && ( $buf = fgets( $fp ))) { list( $_eid, $_n0, $_n1 ) = split( "[\t\r\n]", $buf ); if( $eid == $_eid ) { $not_found = 0; $direction ? $_n1++ : $_n0++; } $ret .= sprintf( "%d\t%d\t%d\n", $_eid, $_n0, $_n1 ); } if( $not_found ) $ret .= sprintf( "%d\t%d\t%d\n", $eid, 1 - $direction, $direction); rewind( $fp ); fwrite( $fp, $ret, strlen( $ret )); } fclose( $fp ); } } function RecommendedEntry_incoming() { $eid_prev = $_COOKIE['mtrcmnd_eid']; if( isset( $eid_prev )) { if( $eid_prev != 194 && RecommendedEntry_getEntryData( $eid_prev )) { RecommendedEntry_updateIndexFile( 194, $eid_prev, 0 /*incoming_from*/ ); RecommendedEntry_updateIndexFile( $eid_prev, 194, 1 /*outgoing_to*/ ); } } else { RecommendedEntry_updateIndexFile( 194, 194, 0 /*incoming_from*/ ); } } RecommendedEntry_incoming(); function RecommendedEntry_outgoing() { setcookie( 'mtrcmnd_eid', 194, time() + 2592000, '/' ); } RecommendedEntry_outgoing(); function RecommendedEntry_initialize( $mode = 0 ) { global $RecommendedEntry_table; $RecommendedEntry_table = array(); $filename = '/var/www/VirtualDomain/kenji00.com/blog/recommend_data/'. substr( '194', -1 ). '/194.txt'; $fp = @fopen( $filename, 'r' ); if( $fp ) { if( flock( $fp, LOCK_SH | LOCK_NB )) { while( !feof( $fp ) && ( $buf = fgets( $fp ))) { list( $_eid, $_n0, $_n1 ) = split( "[\t\r\n]", $buf ); if( 194 == $_eid ) continue; else if( $mode == 1 ) $RecommendedEntry_table{$_eid} = $_n0; else if( $mode == 2 ) $RecommendedEntry_table{$_eid} = $_n1; else $RecommendedEntry_table{$_eid} = $_n0 + $_n1; } arsort( $RecommendedEntry_table, SORT_NUMERIC ); } fclose( $fp ); } } function RecommendedEntry_GetEntry( $_index ) { global $RecommendedEntry_table; foreach( $RecommendedEntry_table as $eid => $count ) { if( --$_index ) continue; $entry = RecommendedEntry_getEntryData( $eid ); if( $entry ) $entry['count'] = $count; return $entry; } } ?> [Movabletype]MT4iでの携帯向けコンテンツに関してあれこれ その4 - 寝不足にて候(仮)
Apr
21
2009

[Movabletype]MT4iでの携帯向けコンテンツに関してあれこれ その4

次は、モバイル用のSitemapデータを作成

手順としては、


  • PC版sitemap.xmlのテンプレートをMovabletypeで作成

  • モバイル版もテンプレート作成

  • 双方を読んでもらえる様に、2ファイルの在り処を明示


ですな。

Sitemapsについてはココを読むヨロシ。

まずは PC版のsitemapテンプレートを作ります。
以下は、エントリ/カテゴリ/月別アーカイブを出力した例。
pcsitemap.xmlみたいな適当な名前でインデックステンプレートを作成して下さい。
こんなファイルが出力されます。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
<loc><$MTBlogURL encode_xml="1"$></loc>
<lastmod><$MTDate format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
<changefreq>daily</changefreq><priority>1.0</priority>
</url>
<MTEntries lastn="9999">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><$MTEntryModifiedDate format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
</url>
</MTEntries>
<MTCategories>
<url>
<loc><$MTCategoryArchiveLink encode_xml="1"$></loc>
<lastmod><$MTDate format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
</url>
</MTCategories>
<MTArchiveList archive_type="Monthly">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<lastmod><$MTDate format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
</url>
</MTArchiveList>
</urlset>

続いてモバイル版。書式は殆ど同じです。
解説はこちら
以下はエントリだけの例。
同じくインデックステンプレートとして保存します。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0">
<MTEntries lastn="9999">
<url>
<loc><$MTBlogURL$>/MT4i設置ディレクトリ/index.cgi?id=<$MTBlogID$>&mode=individual&eid=<$MTEntryID$></loc>
<mobile:mobile/>
</url>
</MTEntries>

で、後はこれらのファイルの在り処をクローラに教えてあげれば良いです。
方法はいくつかあります。Google Webmaster Toolsなんかからでも良いですが、多くのクローラに明示する方向なら、robots.txtにでも

Sitemap: http://hogehoge/PC版のsitemap.xml

Sitemap: http://hogehoge/モバイル版のsitemap.xml

などと書いておけば宜しいかと。

未検証(というか、これから検証)なので間違いあらばご指摘を。
眠い中殴り書きなのでちょっと自信無しです。ので、検証後にこっそり書き直すかもしれません。

このエントリを読んだ人はこんなんも読んでいます

トラックバック(0)

トラックバックURL: http://blog.kenji00.com/MT/mt-tb.cgi/193

コメントする

過去のエントリ(一覧)

Powered by Movable Type 4.261
Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。