拙著「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>