関連記事を表示する Movable Type プラグイン - SimilarEntries v1.0.0 リリース

2015-07-03
4分で読了
更新: 2025-12-14

目次

このブログでのお知らせが遅くなりましたが、先日、Movable Type で関連記事を表示するプラグイン「SimilarEntries」をリリースしました。

今日は SimilarEntries プラグインの特徴をご紹介します。

複数のフィールドで関連性を判定

Movable Type のデフォルトの機能を使って関連記事を表示する場合、「同じタグが付けられている記事」や「同じカテゴリに属する記事」をリストアップすることが多いですが、当プラグインは、複数のフィールドで関連性を判定することができます。

カスタムフィールドも関連性の判定に含めることができます。

フィールドごとに優先度を設定可能

フィールドごとに優先度を変えることができるので、例えば、

  • タグが一致していれば +3 点
  • キーワードが一致していれば +2 点
  • カテゴリが一致していれば +1 点

といった設定が可能です。これらの点数を積み上げていき、点数の多い記事から順にリストアップしていきます。

JavaScript で動的に表示

このプラグインでは、JavaScript で動的に関連記事を表示します。

まず、インデックステンプレートで関連付けを判定するための専用フォーマットの JSON を、スタティックパブリッシングで書き出します。JSON を書き出すと言っても、下記のようなファンクションタグをインデックステンプレートに書けばOKです。


これだけ書けば、あとはファンクションタグがよしなにやってくれます。

次に、同じくインデックステンプレートで出力 HTML 用の JSON ファイルをスタティックパブリッシングで書き出します。これも、下記のようにブロックタグ内に出力したい情報の MTML を書けばOKです。


  • )[
  • これで、

    {
     e718: "
  • すべてのページで同じ「最近のブログ記事一覧」を表示するカスタマイズ(SimilarEntries)[MT Customize]
  • ", e725: "
  • 一定時間で自動的に消える New マークを付ける JavaScript の jQuery 版(SimilarEntries)[JavaScript]
  • ", (省略) }

    のような JSON を書き出してくれます。

    あとは、出力したい場所(記事のテンプレートなど)に、

    
    

    と書けば、実行する部分の JavaScript を書き出してくれます。

    使い方の詳細は、mt-plugin-SimilarEntries/README.md at master · bit-part/mt-plugin-SimilarEntries をご覧ください。

    流れとしては、

    1. 関連付けを判定するための JSON を Ajax で読み込み
    2. 関連記事の ID を取得
    3. 出力用の JSON を Ajax で読み込み
    4. 該当する ID の情報を出力

    するとこになります。

    jQuery 等のライブラリは使っていないので、jQuery を使ったサイトでも AngularJS を使ったサイトでも、どんなサイトでも利用することが可能です。

    JavaScript での処理がメインのプラグインですが、基本的に JavaScript は書かなくても利用できます。

    また、関連記事をリストアップするループで毎回呼ばれる関数を JavaScript で設定することもできるので、少し JavaScript が書ければさらにきめ細かい制御が可能となります。

    下記に、

    • 最初の1回にはさみたい HTML を指定
    • 最後の1回にはさみたい HTML を指定
    • 偶数回目に呼ばれる処理を指定
    • 奇数回目に呼ばれる処理を指定
    • 3回ごとに呼ばれる処理を指定

    した例を掲載します。

    function(i, text, odd, even){ if (odd) { text = text.replace(/
  • 以上です。商用利用は有料となりますが、皆様のお役に立てば幸いです。

    この記事をシェア

    関連記事