「WordPressで学ぶPHP(3)関数編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」の続編にあたり、PHP組み込みの関数や、独自の関数を作る方法などを解説します。
Kindle本で、定価400円です。
ドロップダウン/ラジオボタンのカスタムフィールドで選択肢の表示値と保存値を別にする
Movable Typeのカスタムフィールドでは、ドロップダウンやラジオボタンのフィールドを作ることができます。
公式ドキュメントに書かれている通りに設定すると、ドロップダウン/ラジオボタンの選択肢として管理画面に表示される値と、データベースに保存される値は、同じになります。
しかし、場合によっては、管理画面に表示する値(表示値)と、データベースに保存する値(保存値)を、別にしたいこともあります。
プラグインを作らないとこのようなことはできないのかと思って、Movable Typeのソースコードを見ていたところ、標準機能でできることを見つけました。
1.表示値と保存値を変えたい場面
ドロップダウンやラジオボタンのカスタムフィールドを設定した後で、選択肢の値を変える必要が出ることがあります。
しかし、選択肢を変えても、変える前に保存されている記事等では、そのままの値が維持されます。
例えば、選択肢を「東京」から「東京都」に変えたとします。
この場合、既存の記事等のそのカスタムフィールドの値は、「東京」のままです。
選択肢の設定を変えた時に、それに伴って記事等のそのカスタムフィールドに保存された値が変わらないと、検索等で不都合が生じることがあります。
表示値と保存値を別にすることができれば、検索等では保存値を使い、表示値は自由に変えることができますので、上記のような問題を解決することができます。
2.表示値と保存値を別にする方法
通常は、カスタムフィールドの設定の画面で、「オプション」の欄に選択肢をコンマで区切って入力します。
しかし、このオプションの欄に、以下のように入力することで、選択肢として表示する値(表示値)と、データベースに保存する値(保存値)を別にすることができます。
保存値1=表示値1,保存値2=表示値2,...,保存値n=表示値n
例えば、表示値と保存値を以下のようにしたいとします。
表示値 | 保存値 |
---|---|
赤 | red |
青 | blue |
緑 | green |
この場合、カスタムフィールドの設定の「オプション」の欄に、以下のように入力します。
red=赤,blue=青,green=緑
3.いつの間に...
上記の機能は、Movable Typeの公式ドキュメントのカスタムフィールドの箇所には書かれていません。
Movable Type 6.0のソースコードを見ていて気づきました。
いつの間にこのような機能が実装されたのかと思って、過去のMovable Typeのソースコードも見てみました。
すると、Movable Type 4.25あたりで実装されたようでした。
上記の機能を公式ドキュメントに記載していただきたいものです。