Blogger独自タグで遊んでみた

2020年12月2日水曜日

BLOGGER

またBloggerの独自タグで遊んでいたのでその内容を記事にしたいと思います。この記事内にコードが書かれていますが何の役にも立たないものなのでご注意を。ただの失敗談です。

OGP画像


少し独自タグについて学んだことでページネーションも独自タグでどうにかなったりしないだろうか?と考えていました。気になったので自分にできそうなことを色々試すことに。まず現状はアーカイブページにページネーションが実装されていないので、そこに独自タグでページネーションを実装できるか試してみることにしました。そもそもアーカイブページにページネーションがいるだろうか?というデッカイ疑問は気にしない。


疑問を放り投げる猫イラスト


現在ページネーションが実装されているページのURLを確認すると最後の方に「#PageNo=3」といった具合にページ番号が記載されていました。#のあとに適当な文字列を入力してみてもブログのページが表示されましたのでそういうものなのかな?と勘違いしました。はい勘違いです。勝手に文字を追加したくらいで新規URLが誕生するわけないのに…。この勘違いのまま思考を進めた結果、アーカイブページのURLに「#PageNo=」みたいなものを付け足して続く数字によって表示する記事を調整されるようにしておけばいいだけじゃないか?と考えました。考えをまとめたフローチャートでも作ろうか…と思いましたが面倒臭くなりました。とりあえずその考えをもとに少しいじってみた結果が以下のコード。



<b:elseif cond='data:view.isArchive and data:blog.url != data:blog.canonicalUrl'/>
 <b:loop values='2' var='tes1'>
  <b:loop values='data:blog.canonicalUrl  + "#PageNo=" + data:tes1' var='tes2'>
   <b:if cond='data:blog.url == data:tes2'>            
    <div id='list'>
     <b:loop values='7 to 13' var='tes3'>
      <b:loop values='data:posts[data:tes3]' var='post'>
       <b:include data='post' name='post'/>
      </b:loop>
     </b:loop>
    </div>
   </b:if>
  </b:loop>
 </b:loop>
<b:else/>
 <div id='list'>
  <b:loop values='data:posts' var='post'>
   <b:include data='post' name='post'/>
  </b:loop>
 </div>


記事の一覧を表示する部分に少し変更を加えたものです。最初の行で開かれたページがアーカイブページかつURLが正規化されたものか確認して「#PageNo=」がついているときだけ実行するように条件付けしたつもりでした。ただよくよくblog.urlの中身を確認してみると「#PageNo=」とかのアンカー部分が入っていませんでした。↑のコードは色々と中途半端もいいところなのですが…「#PageNo=」とか勝手につけても意味がないことに気づいたので途中放棄。一応↑のコードではアーカイブページで「#PageNO=2」がURLについていた場合に8記事目から14記事目までを表示するようにしたものです。というかそうなって欲しかったものです。ですが駄目だった。最初の勘違いですでにこけていた…。この考えが通るなら実装できそうだったのになぁ。正規URLのアーカイブページに関しては表示件数を変更できましたけど…二ページ目以降がなぁ。やっぱり検索URLにupdate-maxとかパラメーターを追加して調整する方向でいくしかないか…。


すねて石ころをけるイラスト


コードをいじりながら自問自答はしているのです。やる意味あるのか?と。どうせやるならJavaScriptのコードをいじった方が知識もついて有意義じゃないか?と。でも気になってしまったものは仕方ない。全く手が出ないなら諦めもつきますが、どうにかできそうな感じもするので諦めきれない。試した結果どうにもならない可能性も大ですがモヤモヤは消えますからね。とりあえず問題になりそうなのはupdate-maxに付与する日時を独自タグで入手できるのかどうか。普通の時刻表示なら入手できそうですけどURLに付与されている時刻は文字の羅列になってますからね。エンコードされた形式のようなのでそれを独自タグだけでなんとかできるかどうか。後はトップページで記事を全表示できるかどうか。いまのままだと表示数が七記事に設定されているので<data:posts.length/>で記事数を取得しても7になって総記事数がわかりませんからね。アーカイブは<data:posts.length/>で総記事数が取得できますが…ラベルページはどうだったかな?まぁ気が向いたときにでも少しずつ試していこう。




少し調べてみた結果dataで使用できる件数が最大500だという情報を目にして気持ちが萎えているところです。アーカイブページも500件を越えたら表示されなくなるのだろうか。まぁ500件も表示されれば年別アーカイブや月別アーカイブは大概は問題ないともいえますが。ただやっぱり独自タグでは無理っぽいなぁ。一応ページガジェットやラベルガジェットを利用してページネーション実現したガジェットがあるみたいなのでそちらのコードを気が向いたらチェックするか…。

最新の投稿

このブログを検索

ブログ アーカイブ

自己紹介

ひきこもっていたらお爺さんになりました…嘘です。プロフ写真はFaceAppで老化したものです。本人はもう少しだけ若いです。
ブログ管理者は15年程ひきこもっている、長期ひきこもりのオッサンです。現在ブログは休止中。再開は未定です。 詳細なプロフィール

QooQ