WPSEO_Taxonomy_Fields_Presenter::get_field()privateYoast 1.0

Generates the html for the given field config.

Метод класса: WPSEO_Taxonomy_Fields_Presenter{}

Хуков нет.

Возвращает

Строку.

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

// private - только в коде основоного (родительского) класса
$result = $this->get_field( $field_type, $field_name, $field_value, $options );
$field_type(строка) (обязательный)
The fieldtype, e.g: text, checkbox, etc.
$field_name(строка) (обязательный)
The name of the field.
$field_value(строка) (обязательный)
The value of the field.
$options(массив) (обязательный)
Array with additional options.

Код WPSEO_Taxonomy_Fields_Presenter::get_field() Yoast 22.3

private function get_field( $field_type, $field_name, $field_value, array $options ) {

	$class            = $this->get_class( $options );
	$field            = '';
	$description      = '';
	$aria_describedby = '';

	if ( ! empty( $options['description'] ) ) {
		$aria_describedby = ' aria-describedby="' . $field_name . '-desc"';
		$description      = '<p id="' . $field_name . '-desc" class="yoast-metabox__description">' . $options['description'] . '</p>';
	}

	switch ( $field_type ) {
		case 'div':
			$field .= '<div id="' . $field_name . '"></div>';
			break;
		case 'url':
			$field .= '<input name="' . $field_name . '" id="' . $field_name . '" ' . $class . ' type="url" value="' . esc_attr( urldecode( $field_value ) ) . '" size="40"' . $aria_describedby . '/>';
			break;
		case 'text':
			$field .= '<input name="' . $field_name . '" id="' . $field_name . '" ' . $class . ' type="text" value="' . esc_attr( $field_value ) . '" size="40"' . $aria_describedby . '/>';
			break;
		case 'checkbox':
			$field .= '<input name="' . $field_name . '" id="' . $field_name . '" type="checkbox" ' . checked( $field_value ) . $aria_describedby . '/>';
			break;
		case 'textarea':
			$rows = 3;
			if ( ! empty( $options['rows'] ) ) {
				$rows = $options['rows'];
			}
			$field .= '<textarea class="large-text" rows="' . esc_attr( $rows ) . '" id="' . $field_name . '" name="' . $field_name . '"' . $aria_describedby . '>' . esc_textarea( $field_value ) . '</textarea>';
			break;
		case 'upload':
			$field .= '<input'
				. ' id="' . $field_name . '"'
				. ' type="text"'
				. ' size="36"'
				. ' name="' . $field_name . '"'
				. ' value="' . esc_attr( $field_value ) . '"' . $aria_describedby . ''
				. ' readonly="readonly"'
				. ' /> ';
			$field .= '<input'
				. ' id="' . esc_attr( $field_name ) . '_button"'
				. ' class="wpseo_image_upload_button button"'
				. ' data-target="' . esc_attr( $field_name ) . '"'
				. ' data-target-id="hidden_' . esc_attr( $field_name ) . '-id"'
				. ' type="button"'
				. ' value="' . esc_attr__( 'Upload Image', 'wordpress-seo' ) . '"'
				. ' /> ';
			$field .= '<input'
				. ' id="' . esc_attr( $field_name ) . '_button"'
				. ' class="wpseo_image_remove_button button"'
				. ' type="button"'
				. ' value="' . esc_attr__( 'Clear Image', 'wordpress-seo' ) . '"'
				. ' />';
			break;
		case 'select':
			if ( is_array( $options ) && $options !== [] ) {
				$field .= '<select name="' . $field_name . '" id="' . $field_name . '"' . $aria_describedby . '>';

				$select_options = ( array_key_exists( 'options', $options ) ) ? $options['options'] : $options;

				foreach ( $select_options as $option => $option_label ) {
					$selected = selected( $option, $field_value, false );
					$field   .= '<option ' . $selected . ' value="' . esc_attr( $option ) . '">' . esc_html( $option_label ) . '</option>';
				}
				unset( $option, $option_label, $selected );

				$field .= '</select>';
			}
			break;
		case 'hidden':
			$field .= '<input name="' . $field_name . '" id="hidden_' . $field_name . '" type="hidden" value="' . esc_attr( $field_value ) . '" />';
			break;
	}

	return $field . $description;
}