MT用横型Flashカレンダー(V3.0)をWordPressで使う(前編)

Kinarie&May様で配布されている「MT用Flashカレンダー」は、Movable Typeのカレンダーの置き換えでは定番と言える存在です。
横型カレンダーは現在では3.00にバージョンアップしていますが、それをWordPress(2.0.xおよび2.1.xに対応)で使えるようにするカスタマイズを紹介します。
作業の量がそこそこありますので、今日と明日の2日に分けて解説します。

↓Flashカレンダーの表示の例
Flashカレンダーの表示の例

なお、このカスタマイズは横型Flashカレンダー3.00専用です。
旧版のカレンダーでは、Flashに渡すデータの形式が異なりますので、このカスタマイズをご利用いただくことはできません。

1.ファイルのダウンロードとインストール

まず、以下のリンクをクリックして、カスタマイズで利用するファイルをダウンロードします。

GetAnyTemplate_1_00.zip
FlashCalendar_1_00.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。

「GetAnyTemplate_1_00.zip」を解凍すると、「get_any_template.php」というファイルができます。
このファイルを、WordPressのディレクトリにある「wp-content」→「plugins」ディレクトリにアップロードします。

また、「FlashCalendar_1_00.zip」を解凍すると、「plugins」「theme」「xml」の3つのフォルダができます。
「plugins」フォルダにある「flash_calendar.php」を、WordPressのディレクトリにある「wp-content」→「plugins」ディレクトリにアップロードします。
また、「theme」フォルダにある「calxml.php」を、お使いのテーマのファイルがあるディレクトリ(「wp-content」→「themes」→テーマのディレクトリ)にアップロードします。

そして、WordPressにログインし、「Get any template」および「Flash Calendar for WordPress」のプラグインを有効化します。

↓プラグインを有効化したところ
プラグインを有効化したところ

2.XML用ディレクトリの作成と設定

次に、Flashカレンダーで使うXMLのディレクトリを作ります。

解凍したファイルの中に「xml」というフォルダがありますが、そのフォルダにある「.htaccess」ファイルをメモ帳等で開きます。
そして、その中にある「/wordpress/」の記述を、Blogのアドレスから「http://ドメイン名」を取ったものに置換します(全部で4箇所あり、それらすべてを置換します)。
例えば、Blogのアドレスが「http://www.foo.com/wpblog/」の方の場合、.htaccess内の「/wordpress/」を「/wpblog/」に置換します。
.htaccessファイルの書き換えが終わったら、ファイルを保存します。

次に、サーバーのWordPressのディレクトリの中に「xml」というディレクトリを作ります。
そして、今書き換えた「.htaccess」ファイルと、同じフォルダにある「redirect.php」のファイルを、今作った「xml」ディレクトリにアスキーモードでアップロードします(.htaccessをバイナリモードでアップロードすると、XMLにアクセスする際に「Internal Server Error」が起こる可能性があります)。

なお、WordPressの設定で、WordPress本体のディレクトリとBlogのディレクトリを別にしている場合は、Blogのディレクトリに「xml」ディレクトリを作り、そこに「.htaccess」と「redirect.php」ファイルをアップロードします。

3.カレンダー用XMLを出力できるようにする

次に、テーマのメインインデックス(index.php)を修正して、カレンダー用XMLを出力できるようにします。

メインインデックスの先頭に以下のような部分があります。

<?php get_header(); ?>

この部分を以下のように書き換えます。

<?php
if ($_GET['calxml'] == 1 && is_month()) {
    get_any_template('calxml.php');
    exit();
}
get_header();
?>

メインインデックスの書き換えが終わったら、「http://Blogのアドレス/xml/年_月.xml」のアドレスにアクセスして、カレンダー用のXMLが出力されることを確認します。
例えば、Blogのアドレスが「http://www.foo.com/wpblog/」の方で、2007年4月のXMLを確認するには、「http://www.foo.com/wpblog/2007_04.xml」にアクセスします。