WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
функция не описана

acf_field_range::render_field() public ACF 3.6

Create the HTML interface for your field

{} Это метод класса: acf_field_range{}

Хуков нет.

Возвращает

Null. Ничего.

Использование

$acf_field_range = new acf_field_range();
$acf_field_range->render_field( $field );
  • ($field) (обязательный)
    an array holding all the field's data

Список изменений

С версии 3.6 Введена.

Код acf_field_range::render_field() ACF 5.9.1

<?php
function render_field( $field ) {
	
	// vars
	$atts = array();
	$keys = array( 'type', 'id', 'class', 'name', 'value', 'min', 'max', 'step' );
	$keys2 = array( 'readonly', 'disabled', 'required' );
	$html = '';
	
	// step
	if( !$field['step'] ) {
		$field['step'] = 1;
	}
	
	// min / max
	if( !$field['min'] ) {
		$field['min'] = 0;
	}
	if( !$field['max'] ) {
		$field['max'] = 100;
	}
	
	// allow for prev 'non numeric' value
	if( !is_numeric($field['value']) ) {
		$field['value'] = 0;
	}
	
	// constrain within max and min
	$field['value'] = max($field['value'], $field['min']);
	$field['value'] = min($field['value'], $field['max']);
	
	// 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 );
	
	// open
	$html .= '<div class="acf-range-wrap">';
		
		// prepend
		if( $field['prepend'] !== '' ) {
			$html .= '<div class="acf-prepend">' . acf_esc_html($field['prepend']) . '</div>';
		}
		
		// range
		$html .= acf_get_text_input( $atts );

		// Calculate input width based on the largest possible input character length.
		// Also take into account the step size for decimal steps minus - 1.5 chars for leading "0.".
		$len = max(
			strlen( strval($field['min']) ),
			strlen( strval($field['max']) )
		);
		if( floatval($atts['step']) < 1 ) {
			$len += strlen( strval($field['step']) ) - 1.5;
		}
		
		// input
		$html .= acf_get_text_input(array(
			'type'	=> 'number', 
			'id'	=> $atts['id'] . '-alt',
			'value'	=> $atts['value'],
			'step'	=> $atts['step'],
			//'min'	=> $atts['min'], // removed to avoid browser validation errors
			//'max'	=> $atts['max'],
			'style'	=> 'width: ' . (1.8 + $len*0.7) . 'em;'
		));
		
		// append
		if( $field['append'] !== '' ) {
			$html .= '<div class="acf-append">' . acf_esc_html($field['append']) . '</div>';
		}
	
	// close
	$html .= '</div>';
	
	// return
	echo $html;
}