MT4.2へのアップと同時におまけ機能を備えてみたのですが、それに対して問合せが届いたので少し解説してみようと思います。
と、いってもメインは任意のURL郡内でジャンプしてくれる、という面白便利なCGIスクリプトを配布なさってる方のおかげなので、まぁこんな利用法もありますよ。。。みたいな感じで
どこに飛ぶか判らないスクリプトを配布なさってるのは下記です。
■飯塚真司のCGIライブラリ - 勝手なページへジャンプ
CGIのソースをDLしたら、一先ず「random」というディレクトリを作成して、その中にULします。
CGIなので実行権限のあるパーミッションを割り当てましょう(755とか705みたいな)。
[サイトURL]/random/randurl.cgi (755,705)
ランダムジャンプ先の範囲を指定する
ここではMTを利用して、ジャンプの範囲を決めてみます。
ブログの管理画面に入って、
「デザイン」⇒「テンプレート」⇒「インデックステンプレートを作成」と進みます。
- テンプレート名・・・url.txt
- 出力ファイル名・・・random/url.txt
- 公開・・・スタティック(既定)
- コード・・・下記
<MTEntries lastn="0">
<$MTEntryPermalink$></MTEntries>
これで1行にひとつのURL(エントリーまでのURL)が、記事投稿毎に追加されていきます。
1度「保存と再構築」をして、出力されてるかどうか確認します。
「sort」とか別に要らないです。もともとランダムですし。
指定したい方は以下のリファレンスを参照すると良いです。
■MTEntries | テンプレートタグリファレンス
これで用意が出来ました。
あとは、「ブログのURL/random/randurl.cgi」までのリンクを、好きなところに書いてアクセスしてみます。
ジャンプ出来たら設置終了です。
ボタンにしてみたい場合は以下のような感じで。
<form method="post" action="[サイトURL]random/randurl.cgi" />
<input type="submit" value="どこに飛ぶかな?" />
</form>
付随情報
CGIスクリプトの設定を覗いて見ましょう。
- $urlfile = "url.txt";・・・URLリストのファイル名を指定
- $mode = "silent";・・・「silent」が有効だとすぐにジャンプ
silentの頭をコメントアウト(先頭に#をつける)して、viewを有効にする設定。
- # $mode = "view";・・・こちらが有効だと、下行にて指定のファイルを表示させた後ジャンプ
- # $jumpfile = "your.html";・・・ジャンプ中に表示させるファイル
- # $jumptime = 0;・・・ジャンプ中の秒数指定
パラメータを利用してみる
スクリプトに直接指定も行えますが、パラメータも使えます。こんな感じで。。。
■http://www.materializing.net/js/randurl.cgi?mode=view&jumpfile=jump.html&jumptime=4
パラメータに関してのより詳細な解説は配布サイトにてどうぞ。
htaccessを利用してみる
CGIまでのパスを、htaccessによりrewriteさせてみます。こんな感じで。。。
http://www.materializing.net/jump/=http://www.materializing.net/js/randurl.cgi
htaccess記述例
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^jump/$ [サイトURL]/random/randurl.cgi [L]
</IfModule>
- {REQUEST_FILENAME} !-f・・・ファイルが存在する時はそっち優先(rewrite無効)
- {REQUEST_FILENAME} !-d・・・ディレクトリが存在する時はそっち優先(rewrite無効)
あとがき
カテゴリ・アーカイブへも飛ばしちゃうとか月別アーカイブへも飛ばしちゃうとか、ページ・アーカイブへも飛ばしちゃうとかタグ検索結果へ飛ばしちゃうとかいろいろ出来ます。
url.txtに1行につきひとつのURL、という記述さえでけてればOK牧場。
ちなみに、MTタグには改行にとある性質があって、以下の記述の仕方それぞれで出力表記が変って来ます。
<MTEntries lastn="0"><$MTEntryPermalink$></MTEntries>
<MTEntries lastn="0">
<$MTEntryPermalink$>
</MTEntries>
<MTEntries lastn="0"><$MTEntryPermalink$>
</MTEntries>
この辺りも押さえておくと、テンプレートから出力される際に、どんな感じでソースが生成されるのか想像しながら、テンプレ・コーディングを楽しむ事が出来ます。
できましたっ!!!
ありがとうございます!!
またまた、ご質問で申し訳ありませんが、MT4.2へのバージョンアップって難しいですか?
ちょっとやってみたんですが、うまく動作しなかったので、やめてしまいました。
テンプレート一覧に惹かれます・・・
>>Takuya さん
良かったです_(..)_
難しいかどうか?というと判りません。今までの利用の仕方に因るかと思います。
例えば、たくさんプラグインを利用していれば、それだけチェックも必要になりますし、時間が掛かれば「難しいかな?」と感じるかもしれません。。。やめてしまうとそこで終ってしまいます。
私みたいに4,5回全部入れ換えたりしてると、道は開けるかと思いますー。