この記事に含まれるタグ (Keyword) :
FC2ブログ ページナビ javascript ナビゲーション
外部スクリプトを利用して、FC2ブログのカテゴリーエリアなどに ページ移動用のリンク を設置する方法を紹介します。 これを使うと一番最後のページにも一気にワープできるようになり、「古い記事から」 「新しい記事から」 という設定に殆ど左右されずにブログを読むことができるようになるので凄く便利です!!
↑ 上のエリアに対応し、このブログでも月別ページ以外で実装しています。(※月別ページは全件表示にしているので外しています。)
ページナビ 参照元
共有プラグイン名:ページナビ ,作者:どんぱん [dongpan] さん
[ 参照・参考 : 空があんなに高い: ページ移動スクリプト ]
[ 参照・参考 : FC2変数を利用しているスクリプトの外部ファイル化 - hatena chips ]
外部スクリプトを使ったページナビ設置例
このサイトでの ページナビ(ページ移動用リンク) の設置方法を載せておきます。 カスタマイズした点は、FC2ブログのエリア変数を入れて、必要のないページではスクリプトを読み込ませないようにしてあることと、数字のリンク部分に少し幅を持たせている点などです。
1. テンプレートの <head> ~ </head> 部分
【 参照 : 直接編集OK 整形済みコピー用ソース 】<!--not_index_area--><!--not_date_area-->
<script type="text/javascript" src="http://blog-imgs-35.fc2.com/a/r/i/arinogotokuatumarite/t_pagenavi.js"></script>
<script type="text/javascript"><!--
nextpageurl = '<!--nextpage--><%nextpage_url><!--/nextpage-->';
prevpageurl = '<!--prevpage--><%prevpage_url><!--/prevpage-->';
n = '<%total_pages>';
//--></script>
<!--/not_date_area--><!--/not_index_area-->
<!--/not_edit_area--><!--/not_titlelist_area--><!--/not_permanent_area-->
↑ 太字部分 が入っていれば機能しますが、エリア変数を追加しています。(個別記事ページ でもなく 全記事一覧ページ でもなく コメント編集ページ でもなく トップページ でもなく 月別・日別ページ でもないページ という指定です。) トップページでも機能させたい場合は <!--not_index_area--> と <!--/not_index_area--> を外し、月別ページでも機能させたい場合は <!--not_date_area--> と <!--/not_date_area--> を外してください。
2. ページナビを表示したい場所 に ↓太字スクリプト を追加
【 参照 : 直接編集OK 整形済みコピー用ソース 】<!--not_index_area-->
(中略)
<ul>
<!--topentry-->
<li><a href="#entry<%topentry_no>" title="この記事の先頭へ"><%topentry_title> [<%topentry_year>/<%topentry_month>/<%topentry_day>]</a>
</li><!--/topentry-->
</ul>
<div style="float:right">
<!--prevpage--><a href="<%prevpage_url>" title="前のページへ">← 前のページ</a> <!--/prevpage--><!--nextpage-->total <%total_pages> pages <a href="<%nextpage_url>" title="次のページへ">次のページ →</a> <!--/nextpage-->
</div>
<!--not_date_area-->
<script type="text/javascript">
pagenavi(5);
</script><br style="clear:both" />
<!--/not_date_area-->
<!--/not_index_area-->
<!--/not_edit_area--><!--/not_titlelist_area--><!--/not_permanent_area-->
↑ ソースは上の図にあるように 便利ナビ と併用する場合の一例で、太字スクリプト部分 が入っていれば機能します。トップページでも機能させたい場合は <!--not_index_area--> と <!--/not_index_area--> を外し、月別ページでも機能させたい場合は <!--not_date_area--> と <!--/not_date_area--> を外してください。
pagenavi(5); この部分の数値は自由に設定できるので、現在のページの 前後各(数)ページ にページ番号を表示するかを指定します。
※共有テンプレート ari_seoシリーズ で使う場合、<div style="float:right"> 部分に相当する箇所は <p class="t_right p_mokuji"> となっていますので この部分を、<p class="f_right p_mokuji"> と書き変えればOKです。
このスクリプトだけでも、ページ送りが出来るようになりますが、通常のページ送りのリンクも残しておくのが安全です。検索ロボット(クローラ)や スクリプトOFF環境への配慮 etc
追記 : 2010/08/25
このページナビ は、環境設定の変更 → ブログの設定 → 拡張表示設定 で
表示単位 1ページ内の表示を「記事単位」でまとめる としてある場合に 正しく機能します。 1ページ内の表示を「日付単位」でまとめる と設定している場合、ページ数の表示 が正しく反映されないようなのでご注意ください。
外部スクリプト(t_pagenavi.js)の中身
参考まで。(t_pagenavi.js をダウンロードして使う場合には、1. のアドレス部分を アップロードしたファイルのアドレス に変更して使ってください。)赤文字部分 が 外部スクリプト で使用する場合の変更箇所です。 ソースは一部 私好みに (数字のリンク部分に少し幅を持たせて、title="" で表示されるヘルプチップを全てのリンクに追加) してあります。
【 参照 : 直接編集OK 整形済みコピー用ソース 】{
if (n == '')
return;
url = nextpageurl;
add = -1;
if (url == '') {
url = prevpageurl;
add = 1;
}
ext = '.html';
if ((i = url.indexOf('/page-')) != -1) {
c = url.substring(i + 6, url.length - 5);
base = url.substring(0, i + 6);
} else if (url.indexOf('/category') != -1
|| url.indexOf('/blog-date-') != -1) {
i = url.lastIndexOf('-');
c = url.substring(i + 1, url.length - 5);
base = url.substring(0, i + 1);
} else if ((i = url.indexOf('page=')) != -1) {
c = url.substring(i + 5);
base = url.substring(0, i + 5);
ext = '';
} else {
c = 0;
add = 0;
base = '';
ext = '';
}
n = Number(n);
if (n < 1) n = 1;
c = Number(c) + add + 1;
if (c < 1) c = 1;
if (c > n) c = n;
if (w < 0) w = 0;
ww = 2 * w + 1;
for (i = 1; i <= n; i++) {
dot = '<a href=¥"' + base + (i - 1) + ext + '¥" title=¥"' + i + '¥"> .. </a>'
if ((c - w <= i && i <= c + w) || i == 1 || i == n
|| (i == 2 && c - w - 1 == i) || (i == n - 1 && c + w + 1 == i)) {
if (i == c) {
document.write('<b> ' + i + ' </b>');
} else {
document.write('<a href=¥"' + base + (i - 1) + ext + '¥" title=¥"' + i + '¥"> ' + i + ' </a>');
}
} else if (i < c - w) {
if (i - 1 <= (c - w - 2) % ww) {
if (i - 1 == Math.floor(((c - w - 2) % ww + 1) / 2))
document.write(dot);
} else if ((c - i) % ww == 0)
document.write(dot);
} else if (i > c + w) {
if (n - i <= (n - c + w) % ww) {
if (n - i == Math.floor(((n - c + w) % ww + 1) / 2))
document.write(dot);
} else if ((i - c) % ww == 0)
document.write(dot);
}
}
}
./blog-category-23.html と ./category23-0.html
余談ですが、FC2ブログで使えるアドレスには 異なるアドレスで全く同じページが表示される というものがいくつもあることをご存知ですか? 例えば、カテゴリーの名前を選択した時に最初に表示されるページは ./blog-category-カテゴリー番号.html となりますが、 2ページ目の ./categoryカテゴリー番号-1.html へ進んだ後、「前のページへ」などの (変数を使った) リンクで戻るページは ./categoryカテゴリー番号-0.html となります。 (ちなみに、通常使いませんが ./blog-category-カテゴリー番号-0.html としても同じページが表示されます。)
しかも、2ページ目が ./categoryカテゴリー番号-1.html だなんて、かなり紛らわしいですよね。 どんぱんさん の このスクリプトはその辺りの問題も全てクリア出来ているので本当に良く出来ているなぁ...と ただただ感心・感謝しています!
キーワード検索 : FC2ブログ ページナビ javascript ナビゲーション






お役に立ちましたら、応援して頂けると嬉しいです(*´`*)
記事を読んで頂きありがとうございます。

URL http://arinogotokuatumarite.blog19.fc2.com/blog-entry-94.html
2009/12/01 ~ | Comment (33) tweet? | ↑ ページ先頭へ ↑ |記事を参考にさせていただき、うちにも導入してみました。
とてもわかりやすく、手軽に対処できました。ありがとうございます。トラバさせていただきました。
やっすぃぃぃーさん、またお役に立てて良かったです。
これ、私もすごくお気に入りで、ちょっと寄り道してみたくなる機能ですよね(??)
共有テンプレートには付けていない機能なので これを読んだ テンプレユーザーさん も是非!!(・・・って、登録よりも後に付けた機能だし、ちょっともったいぶってマス)
こんばんわ・・・。ある程度ブログを利用してくるといろいろと手を加えたくなるものですよね。その作業が記事になっていると今後やってみようと思う方々の手助けとなり、とても有益な情報源となります。
ブログを開設している方々がみなPCに明るい方ばかりではないでしょうし、わかりやすく読みやすい記事であるということはさらに重要ですよね。
実際、わかりやすく読みやすい記事を書くのは難しい・・。
paruparuさんもがんばってください~
このコメントは管理人のみ閲覧できます
もう、問題は解決済みでしょうか? 私が確認したところでは
ページナビ,便利ナビ,追記の折りたたみ どれも問題なく機能しているようです。
確認したのは Sleipnir と Firefox です。
どこか特定のページでしたらそのページを教えてください。
ちなみに、私は やっすぃぃぃーさん ではないですよ~^^
早速やってみましたよー♪
ただ・・・夜中に作業したので、きちんと出来上がってるのか不安(汗)
ちゃんと表示されてるから大丈夫なのかなぁ・・・。
そして遠慮なくURLを載せさせてもらいました!(笑)
ありがとうでーす!!!
るしあさんのサイトはトップページに記事を載せないパターンなので
次は page-0.html に繋げてあげないと繋がりが変になってしまうのですが... 変数部分はともかく、このスクリプト自体はトップページでは入れない方が良いかもしれません。
<!--not_index_area--> <!--/not_index_area--> を補ってもらえばOKなのですが、場所は分かるかしら? (私にもちょっと判りづらいので...)
難しい事は全く分かりませんが(笑)
<!--not_index_area--> <!--/not_index_area--> 入れました!
トップページのは ちゃんと消えました!
これでおkかしら どうでしょう?!
お手間かけてしまって ごめんなさいね○┓ペコ
OKです^^ 多分、その方が自然なので。。。
一般的ブログ トップページ≒page-0.html → page-1.html
このテンプレ トップページ(記事無) → page-0.html → page-1.html
後者には小細工が必要なので...ちょっとややしいですよね。
このコメントは管理人のみ閲覧できます
ページとソース拝見しました。 今はまだ断定できませんが、取り敢えず
ページナビに関するスクリプトが 2つ入ってしまっているようなので、
** ページナビ for FC2ブログ という部分のスクリプトを削除してみてください。
この部分は 外部スクリプト(t_pagenavi.js) にしているものなので設定は不要です。
これでダメなら 別の原因かもしれないので、またコメントください。
追記:
環境設定の変更 → ブログの設定 → 拡張表示設定
この設定が トータルページ数の表示 に影響している可能性もあるかもしれません。
以前、ある方のサイトで同様の症状を見かけたことを思い出しました。
表示単位 1ページ内の表示を 「日付単位」 でまとめる になっていないか確認してみてください。 もしかしたら関係している可能性もあるので、「記事単位」 にすれば使える場合も。。。
追記:↑ やっぱり、これが関与しているみたいです。 検索したら出てきました。
環境設定の変更→ブログの設定→拡張表示設定の
表示単位が「日付単位」だと機能しません。「記事単位」である必要があります。
http://10plate.blog44.fc2.com/blog-entry-233.html
ページ送りナビゲーション - FC2ブログのテンプレート工房 より引用
このコメントは管理人のみ閲覧できます
ユーザータグ一覧を1つの記事に表示する方法で質問した者です。
いつもご指導いただきありがとうございます。
ページ数が増えてきたので、今回はこれに挑戦したものの
案の定行き詰ってしまいましたw
まずは日付順ページに設置したいんですが、
表示してくれません。
・<!--not_index_area--> <!--/not_index_area-->内に設置
・拡張表示設定で記事設定確認済み
<script type="text/javascript">
pagenavi(5);
</script>
の設置場所は<!--permanent_area--><!--/permanent_area-->内
でいいんですよね?
やっぱりテンプレートが崩れてるから表示されないんですかね?
また一から作りなおす気力がなくて
できればそれは避けたいのですが・・・。
お手数かけますが、よろしくお願いします。
>(略)の設置場所は<!--permanent_area--><!--/permanent_area-->内
記事の説明 2. に書いた通りなので、むしろその逆です。
日付順のページだけ であれば データエリア だけを指定してあげれば良いと思いますが、タグ別などでも使うと思うので、記事の設定をそのまま利用した方が 後々簡単かもしれません。
エリア変数の詳細は http://arinogotokuatumarite.blog19.fc2.com/blog-entry-98.html
等を参照してみてください。
> テンプレート編集画面の 「タグのハイライト:ON」
> このボタン表示される時と表示されない時ってないですか?
これ、今調べてみたら 確かに表示されないこともあるみたいですね。 重くて読み込めずにタイムアウトになっているのかも。。。あまり使わないので気づきませんでした。
テンプレートを弄ったり 必要な時だけONにしてチェック で十分だと思いますよ。
ご指導のおかげでなんとか設置することができたようです。
また機会がございましたらよろしくお願いします。
ではまた勉強がてらサイト内をうろちょろしてきますw
paruparuさん
ご無沙汰しております。
”ページ移動スクリプト”お借りいたしました。
なんとかうまく入り満足しております。
ありがとうございました!!
前回は 記事を紹介していただきありがとうございます。
対策の効果はどうですか。。?
またちょっとお役に立てたようで良かったです。
このコメントは管理人のみ閲覧できます
チェックしてみましたが、ページナビとは直接関係ないところで、原因があるようです。
実際には これに エリア変数 が入っていると思いますが、
コメント編集エリアで見ると、↓ 下のソースの部分に 余計な 「コメント開始タグ <!-- 」 が2ケ残ってしまっています。 他のエリアでは ここは正常に反映されているようなので、恐らくエリア変数あたりがずれているか、囲みミスがあると思います。
その部分を修正すれば 崩れはなくなると思いますよ。
<!-- ▼//カテゴリーページでの一覧ここから/便利ナビ付き// -->
<div id="benri_navi_area">
<!--
</div>
<!-- ▲//カテゴリーページでの一覧ここまで// -->
<!-- ▼//検索ページでの一覧ここから/便利ナビ付き// -->
<div id="benri_navi_area">
<!--
</div>
<!-- ▲//検索ページでの一覧ここまで// -->
このコメントは管理人のみ閲覧できます
設置させていただきました。ありがとうございます。
さて、ページ送りの数字を、四角で囲ったり、フォントを変えたりするには、どのようにCSSをいじれば良いのでしょうか。
もし、知っていたら、教えてください。
よろしくお願いします。
> ページ送りの数字を、四角で囲ったり、フォントを変えたりするには
まず js ファイルを一部修正します。(※半角スペース部分 は↓ソースでは省略)
dot = '<a href=¥"' + base + (i - 1) + ext + '¥" title=¥"' + i + '¥"> .. </a>'
(中略)
if (i == c) {
document.write('<b class=¥"navi_b¥"> ' + i + ' </b>');
} else {
document.write('<a href=¥"' + base + (i - 1) + ext + '¥" title=¥"' + i + '¥" class=¥"navi_link¥"> ' + i + ' </a>');
}
など、適当なクラス名(赤文字部分) を追加してください。
(※ドット部分 も装飾したい場合には、それにも適当なクラス名を追加)
スタイルシートの設定は お使いのテンプレートによって調整が必要ですが、
例えば こんな感じで設定してみてください。
/*ページナビの表示中ページ*/
.navi_b {
border: 1px solid #ccc;
padding: 1px;
margin-right:3px;
background:#ccc;
}
/*ページナビのリンク*/
.navi_link {
border:1px solid #ccc;
padding:1px;
margin-right:3px;
}
丁寧な解説ありがとうございます。
ですが...うまくいきませんでした...
ページ送りが、表示されません。
document.write('<b> ' + i + ' </b>');
} else {
document.write('<a href=\"' + base + (i - 1) + ext + '\" title=\"' + i + '\"> ' + i + ' </a>');
}
のあとに、これ↓を追加すれば良いのですか?
document.write('<b class=¥"navi_b¥"> ' + i + ' </b>');
} else {
document.write('<a href=¥"' + base + (i - 1) + ext + '¥" title=¥"' + i + '¥" class=¥"navi_link¥"> ' + i + ' </a>');
}
あと、UTF-8で保存して、アップロードしたのですが、クラス名のところが、"ツ"と文字化けしてしまいました。
エンコーディングは、何にすれば良いですか?
教えてください。
お手数かて、申し訳ありません。
先ほど、質問をしたのですが、エンコードをEUC-jpにしたら、解決しました。
ありがとうございました。
載せたコードを全部追加するのではなく 該当場所に
(半角スペース)class=¥"navi_b¥"
等の クラス名部分のみ を追加してください。
※FC2ブログ(ファイルアップロード)の性質上、同名ファイルの上書きは キャッシュが邪魔して 長時間反映されない場合があります。 jsファイルは 上書きより別名でアップロードし直した方が確実かもしれません。
jsファイルのエンコードは、日本語を使っている訳ではないので、この状態のままのソースであれば エンコードは何でもOK だと思います。 一応、開いたものを utf-8 で保存し直してみたものでも確認してみましたが、私の環境では文字化けはしませんでした。
はじめまして。初めてのコメントになります。
いつも、タグの表示の仕方や重複対策など色々参考にさせてもらっています。
paruparu 様の重複対策を実践してから、重複エラーは減っていたのですが最近タイトルタグの重複が増えてきたので、ページナビ、便利ナビを導入しようとしたのですが、記載している通りコードを入れても上手くいきません。
使用しているテンプレートには既に、カテゴリページ内にそのカテゴリの記事一覧表示できるようコードが入っており、ページ切り替えしてページを開けるようになっています。
この部分を削除してparuparu様のコードを入れればよいのでしょうか?
お手数ですが、助言のほうよろしくお願いします。
はじめまして。ブログ拝見しました。
今は カテゴリー別ページのみ 便利ナビが既に設定されている状態ですね。
ソースは概ね ↓ のような感じでしょうか。。
<!--category_area-->
<!-- ▼▼▼ カテゴリページごとの固定表示スペース 開始 ▼▼▼ -->
(使っていないようなので削除してOKかも。。)
<!-- ▲▲▲ カテゴリページごとの固定表示スペース 終了 ▲▲▲ -->
<!-- ▼▼▼ カテゴリページ内にそのカテゴリの記事一覧表示 開始 ▼▼▼ -->
<div id="lists-in-category" class="round categories">
<h2 class="entry-title">「 <%sub_title> 」カテゴリ記事一覧</h2>
{ 便利ナビのソース }
<ul id="pager2" class="round">
{ ページ送り用のソース }
</ul>
</div>
<!-- ▲▲▲ カテゴリページ内にそのカテゴリの記事一覧表示 終了 ▲▲▲ -->
<!--/category_area-->
ーーーーーーーーーーーーーーーーー
これを 以下のように変更すると良いかと思います。
エリア変数は 外側でまとめて設定しています。 トップページ や 月別ページなども含めていますので、不要であれば <!--not_○○_area--> を加えて調整してください。
1.<head> スクリプト (この記事の 1. のソース)
2.<body> 該当場所のソースを↓に
<!--not_permanent_area--><!--not_titlelist_area--><!--not_edit_area-->
<!-- ▼▼▼ ページ内にそのページの記事一覧表示 開始 ▼▼▼ -->
<div id="lists-in-category" class="round categories">
{ 便利ナビのソース (これまでのものでOK) }
{ ページナビ用のソース (この記事の 2. のソース, エリア変数は外側で設定済み) }
</div>
<!-- ▲▲▲ ページ内にそのページの記事一覧表示 終了 ▲▲▲ -->
<!--/not_edit_area--><!--/not_titlelist_area--><!--/not_permanent_area-->
だいたいこんな感じでOKかなと思います。
バックアップを取ってから作業してくださいね。
こんにちは。
早速のお返事ありがとうございます。
paruparu様の助言を参考に変更してみたのですが、カテゴリーの記事一覧のところに同じ内容が2つ表示されてしまいます。
色々入れる場所を変えてみたのですが変化はありませんでした。
お手数ですがアドバイスお願いします。
上のソースで <!--category_area--> ~ <!--/category_area-->
となっている部分のソースを(エリア変数ごと)変更してください。 ただし、
>{ 便利ナビのソース (これまでのものでOK) }
ですので、この部分のみ 以前からのソース を使ってください。
エリア変数は ソースを見ても表示されないので、正確な位置は 管理画面 で確認してもらうしかないのですが、今は該当部分に余計な <!--category_area--> と <!--/category_area--> が入ったままだと思いますので、それを削除してください。
こんばんは。
<!--category_area-->のソースを消して、もう一度入れたら設定できました。
分かりやすく教えていただきありがとうございます。
これを気に、タイトルタグの重複が減るようテンプレートを見直してみることにします。
本当にありがとうございました。
paruparuさんのサイトにはとてもお世話になっています。
あれやこれやと頑張ってやっています。
こちらの便利ナビを導入して設置も上手くいき表示もされるようになりました
HOME(TOP)から→新しい記事から云々→目次記事下に1,2,3、とナビ表示OK
そこから、HOME(TOP)に戻るとなぜか
新着記事のリストが「古い記事順」で表示されてしまいます
なにかが抜けたのでしょうか?原因がさっぱり分かりません
便利ナビ導入前にやったこと、ファンクション強調ボタンを除きました
恐れ入ります、お手すきな時で構いませんのでよろしくお願いいたします
もしも HTMLファイルとCSSファイル(管理画面用)が必要でしたら
メールいたします。
最新記事一覧 が古い順になってしまっていますね。
自分で設定を変更していないのであれば 不具合だと思います。(順番が設定と逆になってしまう不具合は 私も何度か経験してます...)
管理画面で 環境設定→記事の設定 で 最新記事の一覧 の項目を確認してみてください。 ちゃんと 新しい順 になっているという場合、一度 その辺りの設定をガチャガチャ弄って 更新 を押してみたり、新規記事を投稿すれば 何故か正常に戻ることが多いようです。
それでもダメな場合は、FC2に問い合わせをして修正してもらってください。
すぐにお返事くださりありがとうございます
いつも本当に尊敬します
管理画面であれこれやって記事投稿しても駄目な時には
FC2に問い合わせを入れようと思います
コメントを投稿する 記事: ページナビ(ページ移動スクリプト)の設置方法
お気軽にコメントをどうぞ。
ソースコード等の < と > は (実態参照に変換されるので) そのまま使ってOKです。 & は 全角 に変えて使ってください。
Trackback
この記事にトラックバックする (FC2ブログユーザー限定)
ページナビ(ページ移動スクリプト)の設置
カテゴリ表示や月別表示の際は目次となるインデックスリストを最初に表示し各記事にジャンプできるようにしています。 ※参考記事※ ・...
33 Comment