['regular_text', 'all_options', 'small_text', 'large_text'], ]), Setting::description(), ]; } public function sanitizeValue($value, array $field) { return esc_url_raw($value); } /** * The URL as text; a link with `link="1"` or `text="..."`. */ public function displayValue($value, array $field, array $args): string { if (!is_string($value) || $value === '') { return ''; } return Display::wantsLink($args) ? Display::link($value, (string) ($args['text'] ?? '')) : esc_html($value); } public function bindingValue($value, array $field, string $attribute): ?string { if ($attribute === 'url') { return is_string($value) && $value !== '' ? $value : null; } return parent::bindingValue($value, $field, $attribute); } public function render(array $field, $value): void { $placeholder = $this->text($field, 'placeholder'); printf( '%s', esc_attr($field['field_name']), esc_attr($field['field_name']), esc_attr($value), $placeholder ? 'placeholder="' . esc_attr($placeholder) . '"' : '', esc_attr(strtr($field['field_style'] ?? '', '_', '-')), wp_kses_post($this->descriptionHtml($field['description'] ?? '')) ); } }