[ブログ](月別ページ・カレンダーをクリックしたときのページ)のナビゲーションを作りたいのですが…
ココログから移行をしようとしているものです。
ナビゲーションについて2点悶々としていることがありまして
書かせていただきました。
1、月名が表示される月別ナビゲーションについて
<<2008年1月|トップページ|2008年3月>>
というような月別ナビゲーションを
月別アーカイブページ内
メインの上部に入れたいと思います。
一番上だけにナビゲーションを入れたいので、
<MonthlyArticlesLoop>にも入れられない(?)ので
色んなタグが使えない?とも思い、悶々としています。
2、カレンダーの日付をクリックしたページででるナビゲーションについて
上記の際にでるナビゲーションは、現在月別アーカイブとおなじナビゲーションがでるのですが、
カレンダーがクリックしたときに月別のものがでるのはおかしいので…
これは個別記事ページと同じナビゲーションに、変更できないのでしょうか??
個別記事ページでは
<<前の記事名|トップページ|前の記事名>>
と入れていて、(下の記述です)
同じように入れたいと思っているのですが…
何か方法があるでしょうか?
<!-- ..... MainColumn ..... -->
<div id="main" class="column">
<div class="column-inner">
<div class="column-inner-2">
の下に、
<div class="menu">
<IfPrevArticle>
<a class="amenu" href="<$PrevArticle$>">« <$PrevArticleTitle$></a>│</IfPrevArticle>
<a class="amenu" href="<$BlogUrl$>">トップページ</a>
<IfNextArticle>│
<a class="amenu" href="<$NextArticle$>"><$NextArticleTitle$> »</a> </IfNextArticle>
</div>
という非常に自己流の記述で表記しています。
悶々とすること1週間。力不足を実感しています…
どなたかお知恵をお貸しいただけないでしょうか??
よろしくお願いいたします!!
回答(3)
3.

#2>その場合のスクリプト
スクリプトの一例:
<div class="MonthNavi">
<script type="text/javascript"><!--
(function(){
var YM="<$MonthLabel$>";
var y =parseInt(YM.substr(0,4));
var m =parseInt(YM.substr(5,2), 10);
var today = new Date();
var nextMonth = m + 1;
var nextYear = y;
if(nextMonth > 12){
nextMonth=1;
nextYear++;
}
var lastMonth = m - 1;
var lastYear = y;
if(lastMonth < 1){
lastMonth=12;
lastYear--;
}
var baseurl = location.href;
//http://ブログアドレス/archives/yyyy-mm.html
var m_str = lastMonth.toString();
if(m_str.length == 1){ m_str = "0" + m_str; }
var url = baseurl.replace(/\d{4}-\d{2}/, ""+ lastYear + "-" + m_str);
document.write("<a href='" + url + "'><<" + lastYear + "年" + m_str + "月<\/a>");
document.write(" | <a href='<$BlogUrl$>'>トップページ<\/a>");
if(new Date(nextYear, nextMonth-1, 1) <= today){
m_str = nextMonth.toString();
if(m_str.length == 1){ m_str = "0" + m_str; }
url=baseurl.replace(/\d{4}-\d{2}/, ""+ nextYear + "-" + m_str);
document.write(" | <a href='" + url + "'>" + nextYear + "年" + m_str + "月>><\/a>");
}
})();
//-->
</script>
</div>
!!!
プレビューを押した瞬間
嬉しさと安心でいっぱいになりました。
思わず万歳!でした。
頼りっぱなしでしたが
お力添えいただいて本当にありがとうございました!
助かりました!!
スクリプトってすごいですね…
またご縁がありましたら
是非お願いしたい程です。
ありがとうございました!!!
1.

ライブドアブログで用意されている月別ナビゲータは、1画面で表示できない場合の次のページとかであって、前の月、次の月のようなナビゲータは用意されていません。
しかし、月別アーカイブプラグインがあって、
どの画面にもプラグインが表示されるのが標準となっていますから、その必要は少ない(必要ない)と思います。
もし、実現するとしたら、スクリプトで作成するようなことになると思います。
ライブドアブログのカレンダープラグインでは、
月別アーカイブのその日の記事の部分にリンクが作られているので、表示されるのは、月別アーカイブです。
その上で、
それぞれの記事に
<<前の記事名|トップページ|前の記事名>>のようなリンクを作るのは、
MonthlyArticlesLoop 内で
NextArticle
PrevArticle
NextArticleTitle
PrevArticleTitle
を使うことができますので、
月別アーカイブのテンプレートでループの記事の部分に質問にあるようなモノを差し込めばいいかと思います。
BLUEPIXY様
ご回答ありがとうございます!
なるほど、やはりカレンダーは
月別ページを表示しているのですね。
恐縮ですが、
もう一つ、うかがってもよろしいでしょうか??
いましばらく閉じずにおき、
下のコメント欄に書かせていただきますので
お時間ありましたらご検討くださいませ!
2.

やり方は色々あるかと思いますけど、
差し当たり以下のような感じでいいかと思います。
<div class="MonthNavi">
<script type="text/javascript"><!--
(function(){
var YM="<$MonthLabel$>";
var y =parseInt(YM.substr(0,4));
var m =parseInt(YM.substr(5,2), 10);
var today = new Date();
var nextMonth = m + 1;
var nextYear = y;
if(nextMonth > 12){
nextMonth=1;
nextYear++;
}
var lastMonth = m - 1;
var lastYear = y;
if(lastMonth < 1){
lastMonth=12;
lastYear--;
}
var baseurl = location.href;
//http://ブログアドレス/archives/yyyy-mm.html
var m_str = lastMonth.toString();
if(m_str.length == 1){ m_str = "0" + m_str; }
var url = baseurl.replace(/\d{4}-\d{2}/, ""+ lastYear + "-" + m_str;
document.write("<a href='" + url + "'><<" + lastYear + "年" + m_str + "月<\/a>");
document.write(" | <a href='<$BlogUrl$>'>トップページ<\/a>");
if(new Date(nextYear, nextMonth-1, 1) <= today){
m_str = nextMonth.toString();
if(m_str.length == 1){ m_str = "0" + m_str; }
url=baseurl.replace(/\d{4}-\d{2}/, ""+ nextYear + "-" + m_str;
document.write(" | <a href='" + url + "'>" + nextYear + "年" + m_str + "月>><\/a>");
}
})();
//-->
</script>
</div>
コレをループの前後に差し込むというような感じで・ありがとうございます。
いただいた記述が
なぜか表示されないことに
見舞われてしまいました。
詳しくは下記をご参照いただき
お時間あればおつきあいいただければ幸いです…!
足りない情報があれば何でも提供いたします。
よろしくお願いいたします。
コメント(5)
前のブログと同じようにしてくれと
いう著者の注文で作成を手伝っている都合もありまして…、
今回は、月別ページの一番上と一番下に
<<2008年1月|トップページ|2008年3月>>
の、ナビゲーションをつけたいと思っております。
その場合のスクリプトとは
どのようになるのでしょうか??
実はスクリプトは未開地帯でして…
教えて君で申し訳ないのですが、
もしご都合がよろしければ、
お教えいただけますと幸いです!
よろしく御願いいたします。
>>2.
BLUEPIXY様
こんなに複雑な記述なんですね…!
ただただすごいです…。
お忙しいところ、本当にありがとうございます!
いただいた記述、
「ブログアドレス」の部分にブログURLを代入し、
<!-- ..... MainColumn ..... -->
<div id="main" class="column">
<div class="column-inner">
このあいだにはさみこみました。
<div class="column-inner-2">
<!-- ArticlesLoop Start -->
のですが、
何故か何も表示されていないようなのです。
<div class="column-inner-2">
の下にもいれて見ましたが同じようでした。
場所が間違っているでしょうか?
こちら実際のページです。
http://blog.livedoor.jp/dekotoago/
参考にしていただければ幸いです。
またまたお願いしてしまう形になりますが、
ご都合よろしければ宜しくお願いいたします。
>>#3
すいません、スクリプトの一部で閉じ括弧が削除されていました。
入れる場所については、
<!-- ArticlesLoop Start -->の前でいいと思います。
//http://ブログアドレス/archives/yyyy-mm.htmlの「ブログアドレス」については、このようなURLを想定しているということで書いてある注釈ですので、変更する必要はありません。
あと、
変更を保存した後、再構築ページで「月別アーカイブ」の再構築が必要です。
サイトマップをクリックして、再構築ページのダウンリストから選んで再構築して下さい。
うまくいって良かったデス
回答3のモノを使って下さいね。
回答2のモノになっているようです。


