拙著「WordPress Web開発逆引きレシピ」が発売されました。
WordPressの様々なカスタマイズについて、逆引きの形式で取り上げています。
PHP 7.0での動作確認も行っています。
ブログ記事をカスタムフィールドの値でグループに分けて出力する
MTQに、「ブログ記事をカスタムフィールドの値でグループに分けて出力したい」といった内容の質問があがっていました。
カスタムフィールドの型がドロップダウンかラジオボタンであれば、拙作のSupplementalCFTagsプラグインを応用して、比較的簡単に出力することができます。
1.SupplementalCFTagsプラグインのインストール
SupplementalCFTagsプラグインは、カスタムフィールドの各種情報を出力するプラグインです。
カスタムフィールドのオプションに指定した値を、順に出力することもできます。
SupplementalCFTagsプラグインは、以下からダウンロードします。
ダウンロードしたファイルを解凍すると、「plugins」というフォルダができます。
このフォルダを、Movable Typeのインストール先ディレクトリにアップロードします。
2.MTLoadCustomFieldInfoタグ/MTCustomFieldOptionsタグ/MTCustomFieldOptionValueタグ
SupplementalCFTagsプラグインを使うと、ドロップダウン(ラジオボタン)の選択肢を、MTLoadCustomFieldInfoタグ/MTCustomFieldOptionsタグの2つのテンプレートタグで順に読み込めるようになります。
また、個々の選択肢の値は、「MTCustomFieldOptionValue」というテンプレートタグで出力します。
タグの書き方は以下の通りです。
「ベースネーム」の部分には、カスタムフィールドのベースネームを指定します。
<mt:LoadCustomFieldInfo basename="ベースネーム">
<mt:CustomFieldOptions>
個々の選択肢を出力する処理(MTCustomFieldOptionValueタグを使用)
</mt:CustomFieldOptions>
</mt:LoadCustomFieldInfo>
3.ブログ記事をカスタムフィールドの値でグループに分けて出力する
上記のテンプレートで、MTCustomFieldOptionsタグのブロックの中にMTEntriesタグのブロックを入れ、またMTEntriesタグに「field:ベースネーム="値"」のモディファイアを指定すれば、ブログ記事カスタムフィールドの値でグループ分けして出力することができます。
具体的には以下のようなテンプレートになります。
1行目と4行目の「ベースネーム」は、カスタムフィールドの実際のベースネームに置き換えます。
<mt:LoadCustomFieldInfo basename="ベースネーム">
<mt:CustomFieldOptions>
<$mt:CustomFieldOptionValue setvar="value"$>
<mt:Entries field:ベースネーム="$value">
<mt:EntriesHeader>
グループの最初の記事の前に出力する内容(例:カスタムフィールドの値)
</mt:EntriesHeader>
ブログ記事の情報を出力
<mt:EntriesFooter>
グループの最後の記事の前に出力する内容
</mt:EntriesFooter>
</mt:Entries>
</mt:CustomFieldOptions>
</mt:LoadCustomFieldInfo>
