name = 'acfe_slug'; $this->label = __('Slug', 'acfe'); $this->category = 'basic'; $this->defaults = array( 'default_value' => '', 'maxlength' => '', 'placeholder' => '', 'prepend' => '', 'append' => '' ); parent::__construct(); } function render_field( $field ) { // vars $atts = array(); $keys = array('type', 'id', 'class', 'name', 'value', 'placeholder', 'maxlength', 'pattern'); $keys2 = array('readonly', 'disabled', 'required'); $html = ''; // prepend if($field['prepend'] !== ''){ $field['class'] .= ' acf-is-prepended'; $html .= '
' . acf_esc_html($field['prepend']) . '
'; } // append if($field['append'] !== ''){ $field['class'] .= ' acf-is-appended'; $html .= '
' . acf_esc_html($field['append']) . '
'; } // atts (value="123") foreach($keys as $k){ if(isset($field[ $k ])) $atts[ $k ] = $field[ $k ]; } // atts2 (disabled="disabled") foreach($keys2 as $k ){ if(!empty($field[ $k ])) $atts[ $k ] = $k; } // remove empty atts $atts = acf_clean_atts($atts); // override type $atts['type'] = 'text'; // render $html .= '
' . acf_get_text_input($atts) . '
'; // return echo $html; } function render_field_settings($field){ // default_value acf_render_field_setting( $field, array( 'label' => __('Default Value','acf'), 'instructions' => __('Appears when creating a new post','acf'), 'type' => 'text', 'name' => 'default_value', )); // placeholder acf_render_field_setting( $field, array( 'label' => __('Placeholder Text','acf'), 'instructions' => __('Appears within the input','acf'), 'type' => 'text', 'name' => 'placeholder', )); // prepend acf_render_field_setting( $field, array( 'label' => __('Prepend','acf'), 'instructions' => __('Appears before the input','acf'), 'type' => 'text', 'name' => 'prepend', )); // append acf_render_field_setting( $field, array( 'label' => __('Append','acf'), 'instructions' => __('Appears after the input','acf'), 'type' => 'text', 'name' => 'append', )); // maxlength acf_render_field_setting( $field, array( 'label' => __('Character Limit','acf'), 'instructions' => __('Leave blank for no limit','acf'), 'type' => 'number', 'name' => 'maxlength', )); } function validate_value($valid, $value, $field, $input){ $value = sanitize_title($value); if($field['maxlength'] && mb_strlen(wp_unslash($value)) > $field['maxlength']) return sprintf(__('Value must not exceed %d characters', 'acf'), $field['maxlength']); return $valid; } function update_value($value, $post_id, $field){ return sanitize_title($value); } } new acfe_field_slug();