エンジニアブログ

エンジニアブログ
MT技術情報

MTのプラグインをインストールするだけで、指定したカスタムフィールドを自動的に追加する方法

小林 2009年09月12日

プラグインをインストールするだけで、あらかじめ指定したカスタムフィールドを自動的に追加する方法をご紹介します。

MT5では「テーマ」機能でカスタムフィールドを自動的に追加できるのですが、MT4ではできません。

このやり方をすれば、たとえば案件でよく使うカスタムフィールド(重要な記事 MTEntryImportantとか)をプラグインに設定しておいて、自分独自のMTタグを利用するようなことができます。

プラグインのダウンロード

こちらからプラグインのひな型をダウンロードしてください。

AddField.zip

プラグインの修正方法

ひな形のプラグインにはあらかじめ5つのカスタムフィールドがグローバルカスタムフィールドとして追加されるようになっています。

ここでは<$MTEntryImportant$>という重要な記事をチェックボックスで指定するやり方を説明します。

カスタムフィールドのベースネームの設定

14~18行目に

$ADD_FIELD_NAME_番号 = 'カスタムフィールドのベースネーム';

があります。ここでは追加したいカスタムフィールドの数だけ行を書いてください。番号は1から初めて、複数のフィールドを追加する場合は連番としてください(フィールドはいくらでも追加できます。)。ベースネームとは、カスタムフィールドを識別する任意の名前です。これは他のカスタムフィールドと重複して使うことができません。任意のベースネームを指定してください。ここでは

$ADD_FIELD_NAME_1 = 'entry_important';

とします。

追加するフィールドの詳細を設定

追加するフィールドの詳細を設定します。太い赤字の部分を適宜書き換えてください。複数のカスタムフィールドを追加する場合は68~82行目をコピーして 82行目の}を改行して83行目に貼り付けてください。

68~82行目に

## ADD_FIELD_NAME_1 追加用 ## ADD_FIELD_NAME_1 追加用 **************************************************************************
    $custom = CustomFields::Field->load({ basename => $ADD_FIELD_NAME_1 } );
    unless($custom){
        $custom = CustomFields::Field->new;
        $custom->blog_id(0);
        $custom->name('重要な記事');
        $custom->basename($ADD_FIELD_NAME_1);
        $custom->obj_type('entry');
        $custom->type('checkbox');
        $custom->tag('entryimportant');
        $custom->required(0);
        $custom->description('');
        $custom->options('');
        $custom->save;
    }

という行があります。ここにフィールドの詳細を記載します。

69行目
$custom = CustomFields::Field->load({ basename => $ADD_FIELD_NAME_1 } );
ここではベースネームの設定時につけた$ADD_FIELD_NAME_hogehogeの番号を記載します。先ほど_1と指定しましたので、$ADD_FIELD_NAME_1と書き換えます。
72行目 ブログIDの指定
$custom->blog_id(0);
ここでは追加するブログIDを指定します。ブログIDに関係なくフィールドを追加したい場合は0を指定してください。
73行目 カスタムフィールド名の指定
$custom->name('重要な記事');
カスタムフィールド名を指定します。ここでは重要な記事と記載します。
74行目 ベースネームの指定
$custom->basename($ADD_FIELD_NAME_1);
ベースネームを指定します。ここでは先ほど指定した$ADD_FIELD_NAME_1と記載します。
75行目 オブジェクトタイプの指定
$custom->obj_type('entry');
ここではカスタムフィールドを追加したいオブジェクト(ブログ記事・ウェブページ・カテゴリ・フォルダ・ユーザー)を指定します。指定したオブジェクトにカスタムフィールドが追加されます。オブジェクトの指定の仕方はプラグインの48行目に記載しています。
76行目 データ型の指定
$custom->type('checkbox');  
ここではカスタムフィールドで利用したいデータの型(テキストボックス、ドロップダウンなど)を指定します。ここではチェックボックスを指定します。オブジェクトの指定の仕方はプラグインの54行目に記載しています。
77行目 MTタグ名の指定
$custom->tag('entryimportant');
ここでは追加したMTタグを記載します。MTEntryImportantとしたいため、entryimportantと記載します。頭のMTはシステムが自動的につけてくれます。
78行目 必須の指定
$custom->required(0);
カスタムフィールドを必須にするかを指定します。必須にする場合は1を指定します。
79行目 概要の指定
$custom->description('hogehoge');
カスタムフィールドの下に表示する説明文を指定します。不要な場合はdescription('');と空っぽにします。
80行目 オプションの指定
$custom->options('hoge01,hoge02,hoge03');
ドロップダウンリストなどのあらかじめ表示したい項目を指定します。不要な場合はoptions('');と空っぽにしてください。

プラグインのインストール

プラグインをpluginsディレクトリに設置します。その後管理画面にアクセスするとカスタムフィールドが追加されます。

 

field_01.PNG

 

ここで作成した重要な記事のフィールドは以下のように表示されます。

 

field_02.PNG

 

注意事項

  • ここで追加したカスタムフィールドを管理画面から削除しても、プラグインを追加している限りは強制的にフィールドが追加されます。
  • 本プラグインをご利用される方は必ず「プラグインご利用の際の注意事項」をお読みください