<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>MinorProbrem&#187; post_name</title>
	<atom:link href="http://hmlab.info/minor/tag/post_name/feed/" rel="self" type="application/rss+xml" />
	<link>http://hmlab.info/minor</link>
	<description>グダグダ日記</description>
	<lastBuildDate>Wed, 27 Apr 2011 21:48:54 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://hmlab.info/minor/tag/post_name/feed/" />
		<item>
		<title>MovableType4.1からWordPress2.6　パーマリンクの引継ぎ</title>
		<link>http://hmlab.info/minor/2008/09/20080917_020110/</link>
		<comments>http://hmlab.info/minor/2008/09/20080917_020110/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 17:00:15 +0000</pubDate>
		<dc:creator>Hex68</dc:creator>
				<category><![CDATA[MovableType]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[basename]]></category>
		<category><![CDATA[post_name]]></category>
		<category><![CDATA[インポート]]></category>
		<category><![CDATA[エクスポート]]></category>
		<category><![CDATA[パーマリンク]]></category>
		<category><![CDATA[移行]]></category>

		<guid isPermaLink="false">http://hmlab.info/minor/2008/09/20080917_020110.html</guid>
		<description><![CDATA[今回Movabletype4.1からWordpress2.6の移行でどうしても譲れないポイント ★１ パーマリンク（各記事へのURL)の死守。変更ダメ、絶対！ ★２ 付与していたタグの引継ぎ。これはある程度ついてればいい [...]]]></description>
			<content:encoded><![CDATA[<p>今回Movabletype4.1からWordpress2.6の移行でどうしても譲れないポイント</p>
<p>★１ パーマリンク（各記事へのURL)の死守。変更ダメ、絶対！</p>
<p>★２ 付与していたタグの引継ぎ。これはある程度ついてればいいかな</p>
<p>★３ なるべく手早く、お手軽に。現代人は忙しい。具体的には<a href="http://hmlab.info/minor/2008/09/majiacads1.html" target="_blank">マジックアカデミーとか</a>に。</p>
<p><span id="more-3577"></span></p>
<p>＊以下はWordpressを触って数日の素人の生兵法なので正しいかどうかはわかりません。<strong>自己責任で！</strong></p>
<p>まずパーマリンク。</p>
<p>Movabletypeでのパーマリンク生成は、デフォルトでは記事タイトルから日本語を抜いたもの（例：『GJ!の記事だYO』という記事の場合、gjyo.htmlという意味不明なものになる）、英語部分がなければ適当なもの（post-100.htmlとか）があてがわれる。</p>
<p>WordPressのデフォルトだとこのようにはならないので、Wordpressの設定→パーマリンク設定をカスタム構造にして、</p>
<p>/%year%/%monthnum%/%postname%.html</p>
<p>とします。</p>
<p>で、普通にMovabletype4.1から記事をエクスポートして、Wordpressにインポートします。</p>
<p>すると、Movabletypeの元記事のタイトル名.htmlになてしまいます。<strong>はい、失敗！</strong></p>
<p><strong>しかも、日本語だった記事タイトル</strong>も<strong>そのままURLにされてるし！</strong></p>
<p>(　『GJ!の記事だYO』がまんま<strong>GJ!の記事だYO.html</strong>に！SEO的にはアリなんだろーけどもー）</p>
<p><strong></strong></p>
<p>あーなんだこりゃー、インポートの時にうまいこといってないんだろーなー、と予想して、wordpressのルートディレクトリを漁る。すると、<strong>wordpress/wp-admin</strong>の下に<strong>impor</strong>tというディレクトリがある。</p>
<p>その中に<strong>mt.php</strong>ってのがある。あ、これじゃね？</p>
<p>テキストエディタで開く。ソースを見る。<strong>全然わかんないので１０秒で閉じる。</strong></p>
<p>しかたないので、次にMYSQLの中を見る。SSHでログインして、MYSQLにログイン。</p>
<p>すると、記事が格納されているテーブルの中に<strong>post_name</strong>というカラムがある。なんとなくそれっぽい感触。post_nameの名前片隅に覚えつつ、もう一度mt.phpへと。</p>
<p>気を入れてソースを斜め読みしてると、どうもこの<strong>post_name</strong>に値を入れている形跡が見当たらない。あー、やっぱ、これ？</p>
<p>じゃあ、Movabletypeのエクスポートデータの中の「<strong>BASENAME</strong>」（＝Movabletypeの記事HTMLを格納してあるところ）をDBの<strong>post_name</strong>に入れてやればいいんじゃね？ってことで、適当にいれてみる。</p>
<p>function process_postsの中、330行目あたりで</p>
<blockquote><p>else if ( 0 === strpos($line, &#8220;TITLE:&#8221;) ) {</p></blockquote>
<p>とかやっている箇所があったので、ここにelse ifでもぐりこませる。</p>
<blockquote><p>else if ( 0 === strpos($line, &#8220;BASENAME:&#8221;) ) {<br />
$basename = trim( substr($line, strlen(&#8220;BASENAME:&#8221;)) );<br />
if ( &#8221; == $context )<br />
{<br />
$basename = str_replace(&#8216;_&#8217;,'-&#8217;,$basename);<br />
$post-&gt;post_name = $basename;<br />
}<br />
}</p></blockquote>
<p>インポート元（Movabletype)のエクスポートデータを読んでいって、<strong>BASENAME</strong>って行を見つけたら、<strong>$post-&gt;post_name</strong> につっこめってことを指示してるんだ。</p>
<p>ついでに、Movabletypeはパーマリンク中に-（ハイフン）があると、なぜか_（アンダースコア）にご丁寧に変換<strong>してくれていやがる</strong>ので、</p>
<blockquote><p>$basename = str_replace(&#8216;_&#8217;,'-&#8217;,$basename);</p></blockquote>
<p>のところでアンダースコアからハイフンにreplaceしてます。</p>
<p>見ての通りの<strong>強引適当やっつけ仕事</strong>なんですが、今のところうまくいってるっぽいです。GJ!の拍手も（おそらくは奇跡的に）引き継げてます。</p>
<p>そのままだとタグが引き継げなかったりするのですが、（ソースを見てみると、Movabletypeの「キーワード」を「タグ」に放り込んでるくせに、元々の「タグ」を放り込むところが見当たらない。謎だ）、そっちはまた後日。</p>
<div id="scid:81867AAF-BB02-476b-AE5D-12BDAC2E750D:bb43b20a-53a3-4e95-bbd6-b5f0bae001da" class="wlWriterSmartContent" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/479811667X/minorproble06-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51wvZ9nbUSL._SL160_.jpg" alt="WordPress逆引きデザイン事典[2.X対応]" /><br />
WordPress逆引きデザイン事典[2.X対応] 高山 一登 大久保 アキラ 酒井 隆 </a></div>
]]></content:encoded>
			<wfw:commentRss>http://hmlab.info/minor/2008/09/20080917_020110/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://hmlab.info/minor/2008/09/20080917_020110/" />
	</item>
	</channel>
</rss>

