TOP
>
MovableType >
カスタマイズTips
- スパム対策
- トラックバックURLをテキストフィールドに
- カテゴリーやアーカイブの記事数表示
- カテゴリー名と説明を表示する
- カテゴリーページのパンくずリスト
- パンくずリストを入れたらエラーが…
- 画像のアップロードディレクトリを自動で年月名に指定
- 縦型カレンダー
- カレンダーの日付のリンクでその日のエントリーすべてを表示したい
- カテゴリーページで追記を省略
- タイトル一覧をカテゴリーページトップに載せる
- カテゴリーアーカイブでも全部のカテゴリー一覧を表示したい
- metaタグの追加
- カテゴリーアーカイブのタイトルに親カテゴリーも表示する
- 最近のコメント一覧を表示する
- 最新のトラックバックの一覧を表示
- カテゴリーアーカイブを古いもの順にする
- アップグレード
2005年07月25日
スパム対策
まだブログを始めたばっかりなんでコメントをくれるのはブログペットだけなのだが(笑)
余所様の有名ブログにアダルト系のトラックバックが山ほどあるのにショックを受け、対策しておいたほうがいいのかなぁと思い始めた。
何せスパムメール山ほどもらっているさゆぼうはスパムと名の付くものは大嫌いなのだ。
対策1 英語コメント
さゆぼうは英語がダメダメなので、英語でコメントを残されること自体がスパム(爆)
なので英語コメントをシャットアウトする方法というのを見つけ、設置することに…。
BTのWikiより
半角英数字のみのコメントを弾く(コメントスパム対策)
これを設置。
試しに半角だけで書き込んでみてエラーが出ることを確認。やれやれ。
対策2 MT-Blacklist
しかしこれだけじゃまだ足りないらしいのでMT-Blacklistも試してみることにする。
設置方法はさっきのWiki紹介の解説ページを見るも説明のバージョンが古いようでちんぷんかんぷんだった。
検索でなんとかPenPenPalmさんを見つけて設置。
しかしMTのログ見ると何かエラー出てる(^_^;
果たしてちゃんと動作しているのか??
対策3 コメントスクリプトの名前を変える
さっきのPenPenPalmさんお薦めの方法。
blog.bulknews.netさん
コメントスクリプトに機械的にアクセスしてきて書き込ませるスパマーがいるらしいので結構効果的だとか。
しかしまだ一つもスパムがないうちから対策しちゃうと効果の程がわからないな〜…。ちょっと早まったかも。
投稿者 sayubou : 11:15
| コメント (0)
| トラックバック(0)
△上に戻る
トラックバックURLをテキストフィールドに
今後のためにカスタマイズした内容を書いておくことにする。
トラックバックURLがテキストフィールドになっているブログを見かける。
これは便利。コピペしやすいし。
ということで
編集場所:テンプレート>個別アーカイブ
編集内容:トラックバックURL記述部分
<$MTEntryTrackbackLink$>
これを
<input type="text" value="<$MTEntryTrackbackLink$>"
onfocus="this.select()" readonly="readonly" />
に書きかえる。
(readonly="readonly"を指定しておくと、トラックバックURLを間違って消しちゃわないのでちょっと嬉しいかも。)
おまけ:style="width:○○px" と幅を指定しておくと、ブラウザによって幅が変わったりしないので便利。
<input type="text" value="<$MTEntryTrackbackLink$>"
style="width:350px" onfocus="this.select()" readonly="readonly" />
とまぁこんな感じで。
投稿者 sayubou : 18:20
| コメント (0)
| トラックバック(0)
△上に戻る
カテゴリーやアーカイブの記事数表示
カテゴリーの数は
<$MTCategoryCount$>
アーカイブの数は
<$MTArchiveCount$>
なのでこれをテンプレートのカテゴリータイトル(<MTCategoryLabel>)やアーカイブのタイトル(<$MTArchiveTitle$>)の横に付ければOK。
投稿者 sayubou : 23:56
| コメント (0)
| トラックバック(0)
△上に戻る
2005年07月26日
カテゴリー名と説明を表示する
カテゴリーページを出したときにカテゴリー名とカテゴリーの説明を表示したいなぁと思ったので…。
カテゴリーの設定でカテゴリーの説明を入力しておく
編集場所は テンプレート>カテゴリーアーカイブ
カテゴリー名は <$MTArchiveTitle$>
カテゴリーの説明は <$MTCategoryDescription$>
これを適当な場所に入れる。
うちでは
<h2>カテゴリー:<$MTArchiveTitle$><br /> <$MTCategoryDescription$></h2>
こんなかんじでコンテンツの最初に入れています〜。
投稿者 sayubou : 18:13
| コメント (0)
| トラックバック(0)
△上に戻る
2005年07月27日
カテゴリーページのパンくずリスト
カテゴリーページの問題を色々考えた結果パンくずリスト形式がいいかなと思い立つ。
これは結構すんなり上手く行った。
<a href="<$MTBlogURL$>">メイン</a>
>
<MTHasParentCategory>
<MTParentCategories glue=">" exclude_current="1">
<a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>">
<MTCategoryLabel></a></MTParentCategories>
</MTHasParentCategory> > <$MTArchiveTitle$>
とまぁこんなかんじで。
投稿者 sayubou : 02:40
| コメント (0)
| トラックバック(0)
△上に戻る
パンくずリストを入れたらエラーが…
パンくずリストを設置したらエラーが出だした。
内容は
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of array_unshift(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /virtual/***/public_html/***/php/lib/block.MTParentCategories.php on line 7
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of array_push(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /virtual/***/public_html/***/php/lib/block.MTParentCategories.php on line 22
こんなの。しかしパンくずリスト自体はちゃんと表示するんだよね〜。
検索で見つけたこちらの掲示板を参考に
/virtual/***/public_html/***/php/lib/block.MTParentCategories.php
の7行目
array_unshift(&$list, 0); $list[0] =& $parent;
を
array_unshift($list, 0); $list[0] =& $parent;
22行目
array_push(&$parents, 0); $parents[count($parents)-1] =& $cat;
を
array_push($parents, 0); $parents[count($parents)-1] =& $cat;
に変更するとエラーが出なくなった。
どうやらPHP文法の問題らしいが…。PHP勉強しなきゃな〜。
投稿者 sayubou : 13:29
| コメント (0)
| トラックバック(0)
△上に戻る
2005年07月29日
画像のアップロードディレクトリを自動で年月名に指定
たまごっちの写真とかアップしたいなぁと思ったのでファイルのアップロードを考える。やっぱFTPでアップしてしまっては面白くない。
MOVABLETYPEにはちゃんとファイルのアップロード機能があるらしい。管理画面にある「ファイルのアップロード」をクリックするとアップロード画像と保存ディレクトリを選ぶ画面が出てきた。これは便利。
しかしやっぱりたくさん画像をアップロードするとなると管理がややこしくならないように専用のディレクトリを作りたい。となると毎回そのディレクトリに自動でアップされるようにしたい。
みんなが考えることらしく、「Movable Type アップロードディレクトリ」で検索すると出てきた出てきた。その中からnlog(n)さん:画像アップロード先の月別指定のページを参考にさせて頂くことにする。
MTPath/tmpl/cms/upload.tmpl
の</form>と</body>の間に
<script type="text/javascript" language="javascript">
<!--
var today = new Date();
var num_year = today.getYear();
var str_year = String((num_year < 2000) ? num_year + 1900 : num_year);
var num_month = today.getMonth() + 1;
var str_month = (num_month < 10) ? "0" + num_month : String(num_month);
document.forms[0].extra_path_archive.value = str_year + str_month;
//-->
</script>
というJavascriptを入れるということだが、バージョンの違いかupload.tmplには</body>が無かった。
とはいえ気にせず</form>の後に入れればOK。
ついでに
document.forms[0].extra_path_archive.value = str_year + str_month;
を
document.forms[0].extra_path_archive.value = "img/"+ str_year + str_month;
にすると、imgディレクトリ下の年月のディレクトリが自動で指定されるで画像ディレクトリがまとまっていいかもしれない。
さて、たまごっちの写真撮ろう。
投稿者 sayubou : 02:01
| コメント (0)
| トラックバック(0)
△上に戻る
2005年08月02日
縦型カレンダー
最初にカレンダーをレイアウトの邪魔なので外したのだったが、やっぱりいるかなぁと思っていたところに、縦型にカレンダーを表示しているブログを見つけ、これなら幅がせまいからいいなぁとさゆぼうも挑戦してみることにした。
ヘルプのカレンダータグをあれこれいじった末
<table cellspacing="0" cellpadding="0"
summary="カレンダー" id="calen">
<MTCalendar month="this">
<tr><td <MTCalendarIfToday> bgcolor="#FFFFCC"
</MTCalendarIfToday> style="text-align:center">
<MTCalendarIfEntries><MTEntries lastn="1"><a
href="<$MTEntryLink$>"><$MTCalendarDay$></a></MTEntries></MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries></td></tr>
</MTCalendar>
</table>
とこんな風にした。気をつけないといけないところが
month="this"
これは日付アーカイブと個別エントリーアーカイブのとこでしか指定できないのでトップページで使おうとすると怒られる。トップページとかカテゴリーページではこれを外すと今月のカレンダーが表示されるのでついでに月も付けてみた。
そうすると日付アーカイブとかにも月を付けたくなってまた改造。
前月や次月へのリンクも付けてみる。
<table cellspacing="0" cellpadding="0"
summary="カレンダー" id="calen">
<MTArchivePrevious archive_type="Monthly">
<tr><td style="text-align:center"><a
href="<$MTArchiveLink archive_type="Monthly"$>"
title="前月">△</a></td></tr>
</MTArchivePrevious>
<tr><th style="text-align:center"><$MTArchiveDate
format="%b"$><br />月</th></tr><MTCalendar
month="this">
<tr><td <MTCalendarIfToday> bgcolor="#FFFFCC"
</MTCalendarIfToday> style="text-align:center">
<MTCalendarIfEntries><MTEntries lastn="1"><a
href="<$MTEntryLink$>"><$MTCalendarDay$></a></MTEntries></MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries></td></tr>
</MTCalendar>
<MTArchiveNext archive_type="Monthly">
<tr><td style="text-align:center"><a
href="<$MTArchiveLink archive_type="Monthly"$>"
title="次月">▽</a></td></tr>
</MTArchiveNext>
</table>
どんなもんだい。←何故か威張る
投稿者 sayubou : 13:14
| コメント (0)
| トラックバック(0)
△上に戻る
カレンダーの日付のリンクでその日のエントリーすべてを表示したい
カレンダーの日付のところをクリックしたら、その日に書いたエントリーがずらっと出るのが普通じゃないかと思うのだが、そうはならない。
最初のうちは1日に4〜5エントリー書いていたさゆぼうとしてはちょっと不満。
そう思っていたら見つけました!
Techknow Weblog: カレンダーからのリンク先を日別のアーカイブにする
これですこれ♪
ウェブログの設定->アーカイブの設定と辿り、「日別」の横のチェックボックスをチェックして日別アーカイブを作成。 カレンダーの部分の<a href="<$MTEntryPermalink$>"><$MTCalendarDay$></a>
を
<a href="<$MTEntryLink archive_type="Daily"$>"><$MTCalendarDay$></a>
に変更して全て再構築。
これでOKでした〜。すっきりした\(^O^)/
投稿者 sayubou : 23:35
| コメント (0)
| トラックバック(0)
△上に戻る
2005年08月03日
カテゴリーページで追記を省略
カテゴリーのカスタマイズTipsがどんどん増えてやたらと長いページになってしまった。
日別や月別は書いてもたかがしれてるが、カテゴリーは延々と増え続けることを考えると長すぎるのはやばいなと思い始める。
そこでインデックスページのようにカテゴリーページでは追記を省略するようにテンプレートを変更してみる。
設定:テンプレート>カテゴリーアーカイブ
変更するのは
<MTEntryIfExtended>
<$MTEntryMore$>
</MTEntryIfExtended>
ここをインデックスページのように
<MTEntryIfExtended>
<p class="extended"><a href="<$MTEntryPermalink$>#more">続きを読む
"<$MTEntryTitle$>"</a></p>
</MTEntryIfExtended>
に変更。これで一応追記の部分は省略されるようになった。
なるべく追記に書こう…。
投稿者 sayubou : 16:15
| コメント (0)
| トラックバック(0)
△上に戻る
2005年08月04日
タイトル一覧をカテゴリーページトップに載せる
やっぱりカテゴリーページは分割しないと長いなぁと悩み中なのだが、PHP化以外の方法が見つからない。う〜ん。
ひとまず長くても見やすいようにタイトル一覧をカテゴリーページのトップに載せることを考えた。
KEN-G.COM: Archivesのタイトル一覧表示のやり方参考にさせて頂きました。
場所:テンプレート>カテゴリーアーカイブ
リスト形式にしたかったので
<ul>
<MTEntriesWithSubCategories>
<li><a href="#<$MTEntryID pad="1"$>entry"><$MTEntryTitle$></a></li>
</MTEntriesWithSubCategories>
</ul>
こうして、タイトルのところを
<h3 id="a<$MTEntryID pad="1"$>entry"><$MTEntryTitle$></h3>
で上手く行くはずなのだがリストは出たものの何故か上手くエントリーにジャンプしない。
ソースを見るとタイトルのIDの最初に「a」が付いているのを発見。このせいらしい。
なので
<MTEntriesWithSubCategories>
<li><a href="#a<$MTEntryID pad="1"$>entry"><$MTEntryTitle$></a></li>
</MTEntriesWithSubCategories>
</ul>
とidの最初にaを付けたら上手く行った。
カスタマイズのカテゴリーが一番多いわけだが(^_^;
多分もうすぐカスタマイズすることなくなるはず、と思う…。
投稿者 sayubou : 16:05
| コメント (0)
| トラックバック(1)
△上に戻る
2005年08月13日
カテゴリーアーカイブでも全部のカテゴリー一覧を表示したい
標準ではサイドメニューのカテゴリー一覧はカテゴリーアーカイブを表示するとそのカテゴリーに含まれる子カテゴリーしか表示してくれなくなる。これだと他のカテゴリーに一気にいくことができない。アクセシビリティーがいまいちじゃないか?
PHPやSSIを使えば色んなやり方ができそうだけどここはあえてMTの機能だけで何とかしようと考えてみる(というかPHPやSSIを使う設定が面倒なだけだが)。
まずインデックス・テンプレートを新しく作る。
インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築するのチェックは外さずにそのまま。
テンプレートの名前は適当に「カテゴリー一覧」とかで。
出力ファイル名にこれも適当に「clist.txt」とか。
内容はカテゴリー一覧を出力する奴。
<MTSubCategories>
<MTSubCatIsFirst><ul></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<li><a href="<$MTCategoryArchiveLink$>"
title="<$MTCategoryDescription$>"><MTCategoryLabel></a>
<MTElse>
<li><MTCategoryLabel>
</MTElse>
</MTIfNonZero>
<MTSubCatsRecurse>
</li>
<MTSubCatIsLast></ul></MTSubCatIsLast>
</MTSubCategories>
基本的なのはこんなの。
後は、カテゴリー一覧を表示したいところにさっき作ったファイルの中身を呼び出す
<$MTInclude file="clist.txt"$>
を書き込めばできあがり〜♪
ひとまずカテゴリーページに行っても、全部のカテゴリー一覧がサイドメニューに表示するようになりました〜。だから成功ということで…いいかな?
試してみたらエントリーを書いて保存した後、インデックスページだけもう一度再構築しないと反映しないみたいだ(^_^;
インデックス・テンプレートの再構築の順番の問題?
まぁいいか〜。
投稿者 sayubou : 00:10
| コメント (0)
| トラックバック(0)
△上に戻る
2005年08月15日
metaタグの追加
やっぱりぶろぐと言えどもロボット検索エンジン対策はやっておきたい。
metaタグぐらいは付けておかないと〜と思うのだが、トップページはインデックステンプレートにそのまま書き込めばいいが、他のページはその書いてある内容に応じてキーワードや概要を入れたいわけだな。
(このブログのテーマはカテゴリーごとにバラバラだし(^_^;)
まずキーワードを入れるためにはエントリーにキーワードを入力するところを出さなければならない。エントリーの書込画面の下に「この画面の表示をカスタマイズする」でカスタムを選んでキーワードにチェックを入れる。あとは好みで。
そいでキーワードを半角カンマ区切りで各エントリーを編集して追加する。
そしてテンプレートの修正「個別エントリーアーカイブ」のヘッダー部分に
<meta name="Description" content="<$MTEntryExcerpt$>" />
<meta name="Keyword" content="<$MTEntryKeywords$>" />
とこれを入れるわけだな。
<$MTEntryExcerpt$>の所にはエントリーを書くときの「概要(excerpt)」欄、キーワードは「キーワード」欄のが自動でここに入るようになる。概要(excerpt)は何も入れておかなくても初期設定ではエントリーの最初から何文字か目までが自動で入っているはず。自分で入力すれば好きに変更できる。
まぁ今時metaタグ書いてもロボット検索エンジンはあまり気にしてくれないらしいが…。一応ね。
投稿者 sayubou : 18:58
| コメント (0)
| トラックバック(0)
△上に戻る
2005年08月22日
カテゴリーアーカイブのタイトルに親カテゴリーも表示する
ふとタイトルを見ると、カテゴリーアーカイブのタイトルはそのカテゴリーのタイトルのみになっている。例えば「カスタマイズTips」のカテゴリーはMOVABLETYPEのカスタマイズなんだがタイトルは「カスタマイズTips」だけ。これじゃ何のカスタマイズかわかんないじゃないか〜!
ということでタイトル要素に親カテゴリーも表示することにする。
書式としては
ブログタイトル: 親カテゴリー>子カテゴリー
カスタマイズ場所はテンプレートのカテゴリーアーカイブ
<title><$MTBlogName encode_html="1"$>:
<$MTArchiveTitle$></title>
こういうやつを
<title><$MTBlogName encode_html="1"$>:
<MTParentCategories glue=">"><$MTArchiveTitle$></MTParentCategories></title>
とまぁこんな風にしてみた。いいんじゃないか?何となく。
投稿者 sayubou : 06:35
| コメント (0)
| トラックバック(0)
△上に戻る
2005年08月23日
最近のコメント一覧を表示する
ここはさゆぼうが好き勝手なこと書いていてコメントなんぞまず貰えないようなブログなのだが、何とかうさこ以外の人からもコメントをいただくことができた。ありがたいことだ〜。
ふと気付くとここのエントリーはずいぶん増えていて、コメントが付いているエントリーを探すのが大変。これではせっかくコメントをくれた人が自分のコメントを見ることができない!(スパム対策プラグインがコメントをすぐに載せなくしてくれているらしいのだ。)
なので最近のコメント一覧を表示することにした。
さて、探せばこういうのはでてくるもんだ。
Techknow Weblog: サイドバーに最近のコメントを表示する
こちらを参考にさせて頂いた。
日付が長すぎると見た目がいまいち〜とか、コメントが無いカテゴリーアーカイブページでは見出しも消したいな〜など考え
<MTEntries recently_commented_on="1">
<h2>最近のコメント</h2>
<ul>
</MTEntries>
<MTEntries recently_commented_on="5">
<li><MTEntryCategories glue=" ">
<img alt="<$MTCategoryLabel$>"
src="<$MTBlogURL$>icon/cat<$MTCategoryID$>.gif"
width="15" height="15" align="middle"
border="0" />
</MTEntryCategories> <a href="<$MTEntryPermalink$>">
<$MTEntryTitle$></a><br />
<MTComments lastn="5">
└ <a href="<$MTEntryPermalink$>#c<$MTCommentID$>">
<$MTCommentAuthor$>
(<$MTCommentDate format="%b/%e"$>)</a><br
/>
</MTComments></li>
</MTEntries>
<MTEntries recently_commented_on="1">
</ul></MTEntries>
とまぁこんな風にして、左ペインのテンプレートモジュールに入れる。どうやらこれでちゃんとカテゴリーアーカイブでも月別アーカイブでもちゃんと表示されるようになった(出てないところはコメントが無いということで)。
工夫したのは、見出しと最後を
<MTEntries recently_commented_on="1"> 〜 </MTEntries>
で囲ったところ。こうすればコメントがないところでは見出しも出ないということさ〜。もっときれいなやり方がありそうな気もするが…。まぁいいか。
投稿者 sayubou : 02:07
| コメント (1)
| トラックバック(0)
△上に戻る
2005年09月04日
最新のトラックバックの一覧を表示
さて、コメントスパムばっかりでウンザリしていたところだったが、捨てる神あれば拾う神あり、なんと初トラックバックをいただいた。
これはやっぱりトラックバックの一覧も載せなくては〜!ということでサイドバーをカスタマイズ。
ヘルプにあるトラックバックの一覧のタグをそのままサイドバーに貼り付けてみたのだが、コメント一覧の時のように、無い場合は見出しも表示しないように余分なタグを<MTPings lastn="1">〜</MTPings>で囲む。で、こうなった。
<MTPings lastn="1"><h2>最近のトラックバック</h2>
<ul></MTPings>
<MTPings lastn="5">
<li><a href="<$MTPingURL$>"target="_blank"><$MTPingTitle$></a><br
/>
from <$MTPingBlogName$> at <$MTPingDate$></li>
</MTPings>
<MTPings lastn="1"></ul></MTPings>
ところがこれだとカテゴリーページや月別アーカイブページではトラックバックがあっても表示されない。
なので<MTEntries>〜</MTEntries>で囲ってみることを思いついたのだが、これをやると今度はトップページに表示されなくなった(泣)
結局<MTEntries>〜</MTEntries>で囲ったのと囲ってないのを両方書いてみたら解決。あんまりスマートじゃないけどまぁいいか。
投稿者 sayubou : 20:24
| コメント (0)
| トラックバック(0)
△上に戻る
2005年10月05日
カテゴリーアーカイブを古いもの順にする
日記なんかは新しい物が先でいいと思うんだけど、データベースとして考えると古い順に表示した方が読みやすいかなぁと思いついた。
全体の設定は「ウェブログの設定」で日付の新しい順と古い順が選べるのだが、それだと全部変わってしまうのでカテゴリーページだけ古い物の順にしてみよう。
カテゴリーアーカイブテンプレート内の
<MTEntries>
を
<MTEntries sort_order="ascend">
に変更すると設定の逆になる。あとはカテゴリーアーカイブを再構築しておしまい。
簡単だ〜。
投稿者 sayubou : 13:41
| コメント (0)
| トラックバック(0)
△上に戻る
2007年04月16日
アップグレード
最近スパムトラバが多くて多くて、とうとう耐えられずにMTをアップグレードした。
新バージョンはスパム関係の対策が充実していることは前から知っていたのだけど、自分で入れたプラグインやら自動リビルドなどなどが正しく動作するかが不安でなかなか…。
Nofollowのプラグイン前から入れてたのになんでこうスパム多いかね(^_^;)
やってみるとまぁ特に問題なく終了。トラックバックもコメントも認証しないと表示しない式にしたからすごく気が楽になった(笑)
ただなぜかサブカテゴリー表示が所属しているカテゴリー以外のカテゴリーも表示されるようになってしまった。おかげでカテゴリーアーカイブに子カテゴリーのタイトル一覧を載せていたのを外さざるを得なくなった(泣)
色々調べ中なのでいい方法が見つかったら追記します。
投稿者 sayubou : 23:41
| コメント (0)
| トラックバック(0)
△上に戻る