エントリーの人気順を実装してみました。
プラグイン等は、使用せずに、
オリジナルの方法で、やってみました。
以前、『エントリーの人気順を表示。』で、
実装方法を、ちょこっと探したんだけど、
結局、その時は必要なくなり、使わなかったから、
まぁ、PHPの勉強も兼ねて、
サクッと書いてみました。
仕組みは、ざっとこんな感じ。
- エントリーのテーブルに、カウンター用のフィールドを追加。
- エントリーアーカイブに、カウンターを設置
( カウントアップの処理のみで、ビジュアルは無し)。 - 追加したカウンター用のフィールド
からを基に、上位5件を抽出して
エントリーリストを表示。
一番苦戦したのが、エントリーページのURLを引っ張ってくる所。
エントリーのテーブルに、それくらい入ってるでしょ、
とか思ってたけど、エントリーのテーブルはおろか、
どのテーブルにも、そんなフィールドは無く、、
なもんで、<$MTEntryLink$>とか、<$MTEntryPermalink$>は、
どうやってURLを取得してるかを、MTのファイルを漁って見た所、
どうも、いろんなフィールドを組み合わせて、URLを生成してるっぽい?
と言う所まで辿り着いた。
でも、結局その部分のコードが、よく理解できなかったので、
んー、しょうがない。
力技ってことで、エントリーのURLを格納するフィールドを追加。
エントリーアーカイブに設置した、カウンターの処理と同時に、
<$MTEntryLink$>の値を、エントリーURL用のフィールドに格納することで、
表示の際には、このフィールドを参照して、リンクを張りました。
取りあえずは、正常に動いているので、良しとしますけど、
かなり、イマイチな感じ。