さくらのブログからWordpressへの移転に伴うあれこれその2です。移転の続きというか詳細です。
さくらのブログはSeesaa
あれこれ調べたら、さくらのブログはSeesaaというブログシステムを使っているとのことでした。
独自タグは<% 関数 %>こんな書き方です。検索すると、リファレンスを書いてくれているサイトが見つかります。
meta refresh で日付ベースのURLにジャンプできるか
htaccessにアクセスできず301 Redirect が使えないさくらのブログ、仕方なしにヘッダにmeta refreshを書いてジャンプさせてみよう、と目論みます。
関数を調べて日付を取得してURLにくっつけて出力すれば、決まった法則のURLが作られるはず。
で、wordpressのパーマリンクを同じ法則の日付ベースに変えればいいやん。これでジャンプ完璧。と、簡単に考えていました。
で、さくらのブログの日付関数は
<% article.createstamp | date_format(“%Y%m%d” %)>
こんな感じだということがわかりまして、これをURLにくっつけて出力してみました。
日付表示のルールはMovable Typeに準ずるということで、Movable Typeの日付ドキュメントを参考にしました。
<meta http-equiv=”refresh” content=”10;URL=http://www.digitalboo.jpn.org/blog/<% article.createstamp | date_format(“%Y%m%d%H%M” %)>/”>
こんな感じです。
例えば記事が2010年5月15日15:30に作成されたのなら、きっと「http://www.digitalboo.jpn.org/blog/201005151530」と出力されるに違いないと、普通思いますよね。思いませんか。そうですか。
で、ですね。いくらやっても記事内の作成日付を取得してくれず、「本日たった今の日付時間」が出力されるんです。
5年前の記事であろうがなんだろうがリフレッシュされたURLの末尾には「201205150422」と出力されるんですねえ。
「もし個別記事ページなら以下のソースを有効」っていうif文、
<% if:page_name eq ‘article’ -%>
と組み合わせても同じ結果です。
何をどうがんばっても記事の日付を取得せず、クリックした(リフレッシュした)その日付時刻を表示します。
もうわけわかりません。
似たような感じで、日付でなく記事タイトルならどうだろうと
<meta http-equiv=”refresh” content=”10;URL=http://www.digitalboo.jpn.org/blog/<% extra_title %>/”>
こうやってみたら、これはちゃんと記事タイトルを表示しました(ちゃんとでもないけど)
不思議ですね。日付を指定すると変なのにタイトルを指定すると正しく表示されます。その違いはなんでしょう。わけがわかりません。
日付関数については一晩中あれやこれやと試してみましたが、どうがんばっても記事の日付を取得してくれませんでした。
そして諦めました。いや、諦めきってはいないけど(作成日付の出力の仕方をご存じの方はどうか教えてください)
こうなったらまともに動作するタイトルで行くしかありません。
タイトルで合わせる
前回の記事で書いたとおり、記事タイトルは取得して表示してくれますが、英数と半角スペースや記号がタイトルに含まれると上手く動きません。
例えば「iTues Store」が出力されると「iTues%20Store」になり、受け手側のWordpressの自動スラッグでは「itues-store」となっていますので、これは404エラーになります。
最初は.htaccessで個別に対処しようとしました。
で、やってみたのですがこれが上手く動かない。
Redirectで「%20」を「-」に変更するような記述をしても、言うことを聞いてくれませんでした。そもそもスペースも%20も意味が同じだからでしょうか。これはURLの問題ではなくてエンコードとかデコード文字コードとか、どっちが何なのかわかりませんが、とにかくそういった問題ですので、リダイレクトで対処するようなお話ではないのであります。
大文字を小文字に置換する方法もよくわからないし、スペースや記号の整合性も取れないとなると、次にやれることは、さくらのブログの元の記事のタイトルを変えてしまうことでしょうか。半角や記号を削ったり変更したりします。
ふたつみっつこれをやってみてはたと気づいた。「これあかんやろ」
そもそも元の記事を変更せずに新しいブログに引っ越すのが目的だったのに、新しいブログの法則に合わせて元の記事を改編するとは、これ本末転倒の見本のような行動です。
なんか私がアホであることの証明をだらだら書いているような気がしてきましたが大丈夫でしょうか。
さてそうなると次の手立てはこれしかありません。
新しいブログのスラッグを古いほうに合わせるです。
試しにやってみます。
例えばさくらのブログの記事タイトルが「iTunes Store」だったとします。これをメタでジャンプさせるとURLは「iTues%20Store」となります。
Wordpressのほうの該当記事のスラッグは自動的に「itues-store」となっていますので、編集画面で「iTues%20Store」をコピペしてみました。
するとどうでしょう。さすが賢いWordpressです。「itues store」と、%20がスペースに変換されたスラッグができあがりました。
URL「iTues%20Store」でアクセス実験してみたところ、見事「itues store」が開きました。文字化けさえ解決すれば、もともと大文字小文字は区別していなかった模様です。
というわけで、スペースの問題は「Wordpress側のスラッグを調整する」ということで解決しました。
とても簡単でした。
でもやっぱりほんとは日付ベースがいいなあ。。
さくらのブログからWordPressへ-その2(この投稿)