function render_field($field) { // decode value (convert to array) $field['value'] = acf_get_array($field['value'], false); // hiden input acf_hidden_input(array('type' => 'hidden', 'name' => $field['name'])); // vars $i = 0; $li = ''; $all_checked = true; // checkbox saves an array $field['name'] .= '[]'; // foreach choices if (!empty($field['choices'])) { foreach ($field['choices'] as $value => $label) { // increase counter $i++; // vars $atts = array('type' => 'checkbox', 'id' => $field['id'], 'name' => $field['name'], 'value' => $value); // is choice selected? if (in_array($value, $field['value'])) { $atts['checked'] = 'checked'; } else { $all_checked = false; } if (isset($field['disabled']) && acf_in_array($value, $field['disabled'])) { $atts['disabled'] = 'disabled'; } // each input ID is generated with the $key, however, the first input must not use $key so that it matches the field's label for attribute if ($i > 1) { $atts['id'] .= '-' . $value; } // append HTML $li .= '<li><label><input ' . acf_esc_attr($atts) . '/>' . $label . '</label></li>'; } // toggle all if ($field['toggle']) { // vars $label = __("Toggle All", 'acf'); $atts = array('type' => 'checkbox', 'class' => 'acf-checkbox-toggle'); // custom label if (is_string($field['toggle'])) { $label = $field['toggle']; } // checked if ($all_checked) { $atts['checked'] = 'checked'; } // append HTML $li = '<li><label><input ' . acf_esc_attr($atts) . '/>' . $label . '</label></li>' . $li; } } // class $field['class'] .= ' acf-checkbox-list'; $field['class'] .= $field['layout'] == 'horizontal' ? ' acf-hl' : ' acf-bl'; // return echo '<ul ' . acf_esc_attr(array('class' => $field['class'])) . '>' . $li . '</ul>'; }
function render_field($field) { // decode value (convert to array) $field['value'] = acf_force_type_array($field['value']); // hiden input acf_hidden_input(array('type' => 'hidden', 'name' => $field['name'])); // vars $i = 0; // class $field['class'] .= ' acf-checkbox-list'; $field['class'] .= $field['layout'] == 'horizontal' ? ' acf-hl' : ' acf-bl'; // e $e = '<ul ' . acf_esc_attr(array('class' => $field['class'])) . '>'; // checkbox saves an array $field['name'] .= '[]'; // foreach choices if (!empty($field['choices'])) { foreach ($field['choices'] as $value => $label) { // increase counter $i++; // vars $atts = array('type' => 'checkbox', 'id' => $field['id'], 'name' => $field['name'], 'value' => $value); if (in_array($value, $field['value'])) { $atts['checked'] = 'checked'; } if (isset($field['disabled']) && acf_in_array($value, $field['disabled'])) { $atts['disabled'] = 'disabled'; } // each input ID is generated with the $key, however, the first input must not use $key so that it matches the field's label for attribute if ($i > 1) { $atts['id'] .= '-' . $value; } $e .= '<li><label><input ' . acf_esc_attr($atts) . '/>' . $label . '</label></li>'; } } $e .= '</ul>'; // return echo $e; }
function get_valid_relationship_field($field) { // force array $field['post_type'] = acf_get_array($field['post_type']); $field['taxonomy'] = acf_get_array($field['taxonomy']); // remove 'all' from post_type if (acf_in_array('all', $field['post_type'])) { $field['post_type'] = array(); } // remove 'all' from taxonomy if (acf_in_array('all', $field['taxonomy'])) { $field['taxonomy'] = array(); } // save_format is now return_format if (!empty($field['result_elements'])) { $field['elements'] = acf_extract_var($field, 'result_elements'); } // return return $field; }
function render_field($field) { // vars $i = 0; $checked = false; // class $field['class'] .= ' acf-radio-list'; $field['class'] .= $field['layout'] == 'horizontal' ? ' acf-hl' : ' acf-bl'; // e $e = '<ul ' . acf_esc_attr(array('class' => $field['class'])) . '>'; // other choice if ($field['other_choice']) { // vars $input = array('type' => 'text', 'name' => $field['name'], 'value' => '', 'disabled' => 'disabled'); // select other choice if value is not a valid choice if (!isset($field['choices'][$field['value']])) { unset($input['disabled']); $input['value'] = $field['value']; $field['value'] = 'other'; } $field['choices']['other'] = '</label><input type="text" ' . acf_esc_attr($input) . ' /><label>'; } // require choices if (!empty($field['choices'])) { // select first choice if value is not a valid choice if (!isset($field['choices'][$field['value']])) { $field['value'] = key($field['choices']); } // foreach choices foreach ($field['choices'] as $value => $label) { // increase counter $i++; // vars $atts = array('type' => 'radio', 'id' => $field['id'], 'name' => $field['name'], 'value' => $value); if (strval($value) === strval($field['value'])) { $atts['checked'] = 'checked'; $checked = true; } if (isset($field['disabled']) && acf_in_array($value, $field['disabled'])) { $atts['disabled'] = 'disabled'; } // each input ID is generated with the $key, however, the first input must not use $key so that it matches the field's label for attribute if ($i > 1) { $atts['id'] .= '-' . $value; } $e .= '<li><label><input ' . acf_esc_attr($atts) . '/>' . $label . '</label></li>'; } } $e .= '</ul>'; echo $e; }
function get_valid_user_field($field) { // remove 'all' from roles if (acf_in_array('all', $field['role'])) { $field['role'] = ''; } // field_type removed in favour of multiple if (!empty($field['field_type'])) { // extract vars $field_type = acf_extract_var($field, 'field_type'); // multiple if ($field_type === 'multi_select') { $field['multiple'] = true; } } // return return $field; }
function render_field($field) { // vars $i = 0; $e = ''; $ul = array('class' => 'acf-radio-list', 'data-allow_null' => $field['allow_null'], 'data-other_choice' => $field['other_choice']); // append to class $ul['class'] .= ' ' . ($field['layout'] == 'horizontal' ? 'acf-hl' : 'acf-bl'); $ul['class'] .= ' ' . $field['class']; // select value $checked = ''; $value = strval($field['value']); // selected choice if (isset($field['choices'][$value])) { $checked = $value; // custom choice } elseif ($field['other_choice'] && $value !== '') { $checked = 'other'; // allow null } elseif ($field['allow_null']) { // do nothing // select first input by default } else { $checked = key($field['choices']); } // ensure $checked is a string (could be an int) $checked = strval($checked); // other choice if ($field['other_choice']) { // vars $input = array('type' => 'text', 'name' => $field['name'], 'value' => '', 'disabled' => 'disabled', 'class' => 'acf-disabled'); // select other choice if value is not a valid choice if ($checked === 'other') { unset($input['disabled']); $input['value'] = $field['value']; } // append other choice $field['choices']['other'] = '</label><input type="text" ' . acf_esc_attr($input) . ' /><label>'; } // bail early if no choices if (empty($field['choices'])) { return; } // hiden input $e .= acf_get_hidden_input(array('name' => $field['name'])); // open $e .= '<ul ' . acf_esc_attr($ul) . '>'; // foreach choices foreach ($field['choices'] as $value => $label) { // ensure value is a string $value = strval($value); $class = ''; // increase counter $i++; // vars $atts = array('type' => 'radio', 'id' => $field['id'], 'name' => $field['name'], 'value' => $value); // checked if ($value === $checked) { $atts['checked'] = 'checked'; $class = ' class="selected"'; } // deisabled if (isset($field['disabled']) && acf_in_array($value, $field['disabled'])) { $atts['disabled'] = 'disabled'; } // id (use crounter for each input) if ($i > 1) { $atts['id'] .= '-' . $value; } // append $e .= '<li><label' . $class . '><input ' . acf_esc_attr($atts) . '/>' . $label . '</label></li>'; } // close $e .= '</ul>'; // return echo $e; }
function get_post_title($post, $field, $post_id = 0, $is_search = 0) { // get post_id if (!$post_id) { $post_id = acf_get_form_data('post_id'); } // vars $title = acf_get_post_title($post, $is_search); // featured_image if (acf_in_array('featured_image', $field['elements'])) { // vars $class = 'thumbnail'; $thumbnail = acf_get_post_thumbnail($post->ID, array(17, 17)); // icon if ($thumbnail['type'] == 'icon') { $class .= ' -' . $thumbnail['type']; } // append $title = '<div class="' . $class . '">' . $thumbnail['html'] . '</div>' . $title; } // filters $title = apply_filters('acf/fields/relationship/result', $title, $post, $field, $post_id); $title = apply_filters('acf/fields/relationship/result/name=' . $field['_name'], $title, $post, $field, $post_id); $title = apply_filters('acf/fields/relationship/result/key=' . $field['key'], $title, $post, $field, $post_id); // return return $title; }