「続きを読む」を折りたたむ
いろんな人のBLOGでよく見かけていた「続きを読む」部分の折りたたみ。これを先のEntryBodyに入れてしまえば、各アーカイブで続きをいちいち生成しなくてすむじゃないか!と妙な思いつきで作業に入る。
が、
スクリプトがうまく動かなくて表示はぶっ壊れ、修正のために何度も何度もリビルドするはめに。・・・もうちょっと考えてからやればよかった_| ̄|○
参考にさせていただいたエントリー
小粋空間さんの「個別アーカイブに「続きを読む」を導入」
新しいテンプレートモジュールを作り、記載されていたスクリプトを丸ごとコピーしてMTIncludeを使って各ページで呼び出すことに。
しかし全然きちんと動かない。リンクをクリックすると続きが表示されるはずが、個別アーカイブに飛んでしまうし、続き部分が全く表示されず。
調べてみると、私のBLOGにはすでにサイドバーの項目を折りたたむスクリプトを導入しているのですが、これが同じshowHideという関数を使用していました。
サイドバーのスクリプトもできればこっちのをうまく使いたかったのですが、面倒なので新しい方をshowHide2としてその場をしのぐことに(笑)
直したのは以下の部分
スクリプト部分
<script type="text/javascript" language="javascript">
<!--
function showHide2(entryID, entryLink, htmlObj) {
~略各ページに記述する部分
<MTEntryIfExtended>
<div id="Link<$MTEntryID$>">
<a href="<$MTEntryPermalink$>" name="<$MTEntryID pad="1"$>" onclick="showHide2(<$MTEntryID$>,'<$MTEntryPermalink$>',this);return false;">続きを読む ≫</a>
</div>
<div id="Text<$MTEntryID$>" style="display: none">
<$MTEntryMore$>
<a href="<$MTEntryPermalink$>" name="<$MTEntryID pad="1"$>" onclick="showHide2(<$MTEntryID$>,0,this);return false;">≪ 続きを隠す</a>
</div>
</MTEntryIfExtended>
そして作ったばかりのEntryBodyに続き部分も入れてしまいたくて、EntryBody内に続き部分を記述したのですが、個別アーカイブで続き部分が閉じているのはちょっと違和感が・・・というわけでとりやめ。負荷対策を考えると続き部分は個別エントリーだけにある方がいいのだけれど・・・まぁいいか。





