Custom Field Suiteでセレクトボックスの選択肢を全て取得する

WordPressのプラグインでAdvanced Custom Fieldsを使用できなかったので、Custom Field Suiteを利用した案件があったのですが、絞り込みのシステムでチェックボックスやセレクトボックスで選択肢を全て表示する必要がでてきました。

CUSTOM FIELD SUITE で 選択肢 を全て取得する方法 では項目に決まった文字列をつけてデータベースから取り出すという方法でしたが、もっと効率の良い方法がないかと思い調べたところ、[Plugin: Custom Field Suite] Get Field's Type and Choices (for select)で答えを得られました。

使いやすいようにアレンジしましたので記載します。

functions.php に追記

/**
 * Custom Field Suiteの選択肢を取得する
 * @param {array} group_id - フィールドグループのID
 * @param {string} field_name - フィールド名
 * @param {string} field_type - フィールドタイプ
 * @return {array} - 選択肢が配列で戻る
 */
function get_cfs_choices($group_id, $field_name, $field_type = 'select'){
  global $cfs;
  $choices = array();
  $field_info = $cfs->api->get_input_fields($group_id);
  foreach ($field_info as $field) {
    if ($field_type == $field->type && $field_name == $field->name) {
      $choices = $field->options['choices'];
    }
  }
  return $choices;
}

テンプレートに記載

<ul>
<?php foreach(get_cfs_choices(array(51), "categories", "checkbox") as $category): ?>
  <li><?php echo $category; ?></li>
<?php endforeach; ?>
</ul>

コメント

お名前 必須

名前を入力してください。

メールアドレス

正しいメールアドレスを入力してください。

URL

正しいURLを入力してください。

タイトル

タイトルを入力してください。

タイトルに不適切な言葉が含まれています。

コメント必須

コメントを入力してください。

コメントに不適切な言葉が含まれています

パスワード必須

パスワードを入力してください。

パスワードは半角小文字英数字で入力してください。

Cookie

関連記事

この記事のハッシュタグに関連する記事が見つかりませんでした。