
えーと。まぁタイトルの通りです(笑)
「カテゴリページのみ最初の1ページ目にクエリが付かないのは不具合ではないか」という件ですが、結論としては 仕様 ということで確定です。

ページ送りに不具合か【FC2独自変数】
独自変数に不具合が生じているのではないか、という仮定のもとに書いています。具体的な内容としては リスト型ページ送りで1ページ目に戻った際に正しいページが表示されない、あるいは404 not foundになる というものです。どちらになるかは エイリアス機能を利用しているかどうか で分かれます。また、不具合ではなく仕様変更の可能性もあります。...
まずはお詫び
運営からのお返事が本日届きまして。実はその前に昨夜気づいたんですね。これが仕様変更によるものだということ を (∵`)
【ブログ】 カテゴリーURLの変更につきまして 平素は FC2 (fc2.com) をご利用いただき、誠にありがとうございます。 このたび FC2ブログ (blog.fc2.com) では、 カテゴリ用のURLを変更・統合することになりました。...
ちゃんとアナウンスも行われ、こう明記されています。
URLが /category-0-1.html であることを期待して記述されたテンプレートや Javascript は動作しなくなります。
FC2総合インフォメーション
猶予期間を設けてあるからそっちで対応してくださいよ、という感じで書いてある。小さな字だけど(笑)
なんでしょうね… 読んだ「つもり」理解した「つもり」になっていただけで実際には字面を目で追っただけ、みたいな。
これは私の怠慢です。しっかり読んでいればもっと早く気付けたはずですし、対策する時間も十分にあったはず。皆様へは申し訳ございません。また、お忙しい中メールでやり取りして頂いたスタッフさんにもお詫び申し上げます。対応評価星5送っておきました。せめてものお詫び ^^;
で、返信内容ですが、やはり SEO面、正規URL といったキーワードが出てましたね。そちらの方面も見据えた変更、ということでしょう。そもそもエイリアス機能(カスタムURL)自体がSEOと深く関わってるわけですしね。そりゃそうだよね ^^;
ただし個人的には「なぜカテゴリだけ」というのもありまして。もしかすると今後カテゴリ以外のページ種でも本件のような見直しが無いとは限りません。まぁその時はまたその時で対処するとして。あるいは差し戻しの可能性。ってそれは流石にないか。でも100%ではない。
修正スケジュール
ともかくテンプレートの修正をしないといけませんので、リリース済みのものについてはできるだけ早急に処理するつもりです。ところがこういう時に限って多忙なんですよー ( ̄∀ ̄;)
でも頑張る ←
修正が完了したものは各テンプレートの専用記事でアナウンスを行います。大変お手数ですが、ご利用中のテンプレートの進捗状況をご確認ください。
以降は対処(修正方法提案)と雑多説明と個人的に思うこといろいろ。
修正提案
これが困りましたねー (´・ω・`)
FC2の純正ページ送りというのは スマートフォン版にしか存在しない んですよね。ここはぜひ共通化を検討してもらいたいところですが。
何が一番困るかというと、これまでFC2ブログにとって有益な様々な JavaScript を提供してくれた作者さんの多くが既にFC2から引退されている、という事実。オープンソース的に利用が許可されているコードについて、じゃあテンプレートの作者に修正できるスキルがあるかどうかがまず疑問です。
スキルが有るとしても、これまた多くのテンプレートデザイナーさんが引退されていますよね。となると既存のテンプレートで「リスト型ページ送り + オープンソース」のパターンの場合は 修正はほぼ不可能 です。テンプレート作者、JS作者いずれが欠けても修正できない、という現状です。
あの。どうかなぁ。何度も書いてるけどここらでテンプレートの整理してはどうかと思う。本件なんか良いタイミングかもしれない。精査にかなり時間を取られるとしても、明らかに不完全なものを配布してしまうよりは良いと思います。すっごい面倒な作業だけど、該当テンプレート作者にメールなりで連絡(修正の要請あるいは提供終了の意思確認)をし、一定期間内に返信が無ければDL不可にする、とかもうそのぐらいやっても良いんじゃないのかなぁ (∵`)
不具合のパターン
ちょっと整理したいと思います。「エイリアス機能を利用する可能性」というのはもう絶対無視できませんし、「エイリアス機能利用者はJSを変更してください」なんてアナウンスは99%スルーされますので、機能の利用有無に左右されない がやっぱり配布テンプレートしての絶対条件だと思うんです。個人で使うならなんでも良いけどさ (´・ω・`)
なので「自分には関係ないや」と思わずご覧ください(笑)
- jQueryページネーション --- エイリアス機能ONで 利用不可
- vanilla JSページネーション --- 内容によって 対処が異なる
まず①のjQueryページネーションですが、ほぼ間違いなく Simple pagination という名称のプラグインを利用しているはずです。少なくとも私はこれ以外にjQueryのページネーションを見かけたことは無いです。
simple pagination、カスタマイズも容易で使い勝手もほぼパーフェクトで申し分無いんですが、URLの分岐ができない ため死亡。分岐というのは「エイリアス機能を使っているか使っていないか」です。この見分けを行う変数が無い、あるいは有ったとしても公開されていませんので振り分けることができません。
エイリアス機能利用なし
https://xxx.blog.fc2.com/blog-category-カテゴリ番号-ページNO.html
エイリアス機能利用あり
https://xxx.blog.fc2.com/c/独自名称?page=ページNO
simple〜の場合は hrefTextPrefix (上記コードの赤字部位)をダイレクトに指定しなきゃいけませんので、振り分けできない時点でアウトです。なのでエイリアス機能をONにして初めてページ送りの不備に気づく、という感じになりますね。
②のvanilla JS(pure JS, native JS, 素のJS)ですが、これがまた厄介です。こちらはもしかするとテンプレート作者が自力で書いている可能性もあります。それはすなわち 内容が統一されていない ということでもあります。
大きく分けて2パターン。1つめは 1ページ目のURLを基本(base)とし、それ以降は +1 という方式。この場合はページが100あれば100のリンクが掲載されます。500ページあれば500(笑)
2つめは リンク掲載数を固定して前後を省略し、前後を +1, -1 という方式。こちらのパターンが主に本件の対象です。なぜなら <%prevpage_url> 変数を使わざるを得ないため。
ともかくvanillaの方は人によって内容がバラバラでしょうから、私が「この部位をこう修正!」で済む話ではないんですね。それでもまぁ、たいていの場合はいけるだろうと思いますが(修正内容は後ほど)
で、さらにですが、vanillaのひどいものだと current pageの誤認識 が起こるもの(現在ページが1ページ目なのに2ページ目になっている、とか。当然前後ページへの遷移不可)があったり、弊テンプレートの類似の場合は ページ数が2ページの時だけ1ページ目へ戻るリンクアドレスがおかしい とか。いろいろ。
こうして記事にしている以上ある程度は汎く使えるように対処法を書きますが、パターンに沿っていない場合など質問や指南要求はしないでね ^^;
能力も時間も無いもので。すみません。もちろん私が制作したテンプレートについてはデフォルト内容であればちゃんとサポートします。
修正提案
「どの作者の」「誰が作ったJSの」とかが言えません。わからないから。ただページ送りのメソッドというのは大抵お決まりなので誰が書いても類似にはなっているはずだと思います。コード内に <%prevpage_url> <%nextpage_url> が記載されている場合には使える可能性が高い。でも絶対ではありません。
リスト型で前後の省略があるタイプですね。この場合は 1ページ目がリンクになっている時とそうでないとき(current pageのとき)はhtmlを直書きする という方式がほとんどだと思います。
<a href="'+記号+0+記号+'">1</a>
記号というかアルファベットですね。便宜上「記号」と書きました。a とか p とかの場合もありますし omit とか number とか単語の場合もあります。それはわかりません。あるいはa要素だけでなくli要素やspan要素に挟まれている場合やクラス属性などが付いている場合などもあります。ともかく 1ページ目のリンク書き出しにあたる部位を探す ということです。 で、その部位をまずFC2独自変数で囲います(赤字部位)。さらに新しい内容を書き加えます(緑字部位)。
<a href="<!--not_category_area-->'+記号+0+記号+'<!--/not_category_area--><!--category_area--><!--page_area--><%firstpage_url><!--/page_area--><!--/category_area-->">1</a>
もう今回はこれでOKだと思います (´・ω・`)
Googleと同じ方式なんかも考えたんですが、ajaxを使う関係上1ページあたりのアイテム(記事)表示件数を指定する必要があるので消去。JSの刷新も能力的な問題で消去。あとは超簡易的でどんなJS内容でも使える方法(変数を利用)もありますがSEO面で難ありなので消去。
弊テンプレート利用者さんでテンプレートの再DLは困る、という方は以下の手順を行ってください。ご面倒おかけします。
以下の内容を Ctrl + F キー検索
<li class=pager-item><a class=pager-item-anchor href="'+base+0+ext+'">1</a></li>
以下の内容に 差し替え
<li class=pager-item><a class=pager-item-anchor href="<!--not_category_area-->'+base+0+ext+'<!--/not_category_area--><!--category_area--><!--page_area--><%firstpage_url><!--/page_area--><!--/category_area-->">1</a></li>
各テンプレート、最新版であればこの内容です。古いものだとちょっと違うかもしれない。見つけられない場合はお尋ねください(弊テンプレート利用者さんのみ)
注意点
非公開変数を利用しています。いや、非公開ではないな。スマートフォン版専用変数 としてマニュアルに記載されているものです。実際にはPC版でも使えます。けれども今後ずっとそうとは限りません。もしかすると利用不可になる可能性も(低いとは思いますが)
まとめ
こういう顛末になりました。エイリアス機能の導入は思った以上に影響の大きいものだったなぁ、と。そうは言っても待望の機能という方もいらっしゃるでしょうから、利用する方が困らないようにテンプレート作者さんは自主的な修正をされると良いですね。
対応が遅れましたことを心よりお詫び申し上げます。
There are no comments yet.