MB-Support

パソコン初心者のサポートページ

10.Thingamablog ハドソン婦人の日誌を作成 続編

 エントリーのタイトル部分の不具合を修正する方法


前回 、エントリーテンプレートだけ、タイトル部分が「ブログタイトル : ブログタイトル」と表示されてしまうのを、右画像のように「エントリータイトル : ブログタイトル」と表示させる様に修正しました。 修正したソースは、<head>〜</head>内の<title>部分で、

<title>
<BlogEntry>
<EntryTitle><$PageTitle$></EntryTitle>
</BlogEntry> : <$BlogTitle$>
</title>


としました。修正してから生成された HTML をローカルで確認した時は成功したかに思われましたが、ホームページを下にスクロールしたところ、右画像のように、エントリーの内容が2つ書き出されてしまいました。 何でだろう?

1つの投稿内容が忠実に複製されるので、タグの閉じ忘れか? 原因は<BlogEntry></BlogEntry>を1つのテンプレートで2回使用した事だとは思われますが、タイトル部分で抽出したのは <$PageTitle$> のみで、タグも正常に閉じられてまいす。

<$EntryBody$> (投稿の内容だけ抽出するタグ) だけが重複するのでは無く、<$EntryTitle$> ( 投稿の時に入力したタイトルを抽出するタグ ) や、<$EntryAuthor$> (投稿者の名前を抽出するタグ) 、<$CategoryName$> ( 投稿する時に指定したカテゴリを抽出するタグ ) までも重複されるので、全く検討が付きません。



<BlogEntry>
<DayHeader>
<h2 class="date"><$DayHeaderDate$></h2>
</DayHeader>
<div class="blogbody">
<a name="<$EntryID$>"></a>
<EntryTitle>
<h3 class="title"><$EntryTitle$></h3>
</EntryTitle>
<$EntryBody$>
<div class="posted">
Posted by <a href="mailto:<$EntryAuthorEmail$>">
<$EntryAuthor$></a> at <$EntryTime$></a><br>
<EntryModifiedDate><i>Edited on: <$EntryModifiedDate$></i><br>
</EntryModifiedDate>
Categories: <EntryCategories glue=", ">
<a href="<$CategoryLink$>"><$CategoryName$></a>
</EntryCategories><br>
</div>
</div>
</BlogEntry>


上のソースが右画像の部分を抽出して HTML を吐き出すソースになりますが、なぜ 2 回繰り返されるのかが、まるで分からない状況です。 相変わらず、修正した <title>〜</title> 部分を元に戻すと、エントリーは正常に表示されます。 これには、2 日間ほど悩みましたが ( 正確には本家のページが忙しくて忘れていた ) 、最終的に強引な方法を実行する事になりました。 具体的には、タイトル部分の



<title>
<BlogEntry><EntryTitle><$PageTitle$></EntryTitle>
</BlogEntry> : <$BlogTitle$>
</title>

から、</BlogEntry> を削除しました。


<title><BlogEntry><EntryTitle><$PageTitle$></EntryTitle>
 : <$BlogTitle$></title>

理由は分かりませんが、<head>〜</head> 内の </BlogEntry> が正しく認識されていないため、重複して吐き出せていると仮定しました。 当然、このままでは駄目だと思います。<head>〜</head> で <BlogEntry> は開始されたままになるので、ついでに、<body>〜</body> にある <BlogEntry> を削除しました。



<BlogEntry>
<DayHeader><h2 class="date"><$DayHeaderDate$></h2></DayHeader>
<div class="blogbody">
<a name="<$EntryID$>"></a>
<EntryTitle>
<h3 class="title"><$EntryTitle$></h3>
</EntryTitle>
<$EntryBody$>
<div class="posted">


分かりやすく書くと、ヘッダーから開始された <BlogEntry> をボディ内の </BlogEntry> まで延長する事になります。



<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
 charset=<$Charset$>" />
<title><BlogEntry><EntryTitle><$PageTitle$></EntryTitle>
 : <$BlogTitle$></title>

------------ 省略 ------------

<EntryTitle>
<h3 class="title"><$EntryTitle$></h3>
</EntryTitle>
<$EntryBody$>
<div class="posted">
Posted by <a href="mailto:<$EntryAuthorEmail$>"><$EntryAuthor$></a>
 at <$EntryTime$></a><br>
<EntryModifiedDate><i>Edited on: <$EntryModifiedDate$></i><br>
</EntryModifiedDate>
Categories: <EntryCategories glue=", ">
<a href="<$CategoryLink$>"><$CategoryName$></a>
</EntryCategories><br>
</div>
</div>
</BlogEntry>


どう考えても、いけない事をしている様に思うのですが、事実上、<BlogEntry>〜</BlogEntry> を 1 度とか使用せずに済みました ( 本来は使用しも良いと思うのですが ) 。 で完成したのが右のページです。画像をクリックすると別窓で開きます。タイトルと、エントリー本文の問題が同時に解決されました。 生成されたホームページのソースを見ても違和感はありませんが、テンプレートの記述は上の様に変な感じです。


Thingamablog を使って制作したページへ・・・・・

注:Thingamablog で作成したサンプルページは既に存在しません。ですが、2007 年 2 月現在、バージョンアップした Thingamablog がダウンロード可能になっています。もしかするとまた試すかも知れません。その時はサンプルページを用意したいと思います( 簡単なので、実際に利用してもらうのが一番だと思いますが )。 Thingamablog に関する MB-Supportの日記は、以下のカテゴリにまとめて表示されます。もし、新しく情報を掲載する場合は、管理人の日記の他、以下のカテゴリページに追加される予定です。


ローカルでブログを構築する方法 Thingamablog

また、このページに掲載した問題は、新しいバージョンでは修正されている可能性が高いです。




戻る 一覧表示 次へ


BTOパソコン・ゲームPC・自作パソコンなら【TSUKUMO】 - 自作PCに必要なパーツ、豊富な品揃え

Copyright © 2013 MB-Support パソコン初心者のサポートページ All Rights Reserved.

管理人サイト閲覧方法プライバシーポリシー著作権/免責事項