' . esc_html($attribute['value']);
break;
case 'url':
case 'file':
$link = (string) ($attribute['value'] ?? '');
if ($link !== '' && filter_var($link, FILTER_VALIDATE_URL)) {
echo '
' . esc_html($link) . '';
} else {
echo esc_html($link !== '' ? $link : '—');
}
break;
case 'email':
echo '
' . esc_html($attribute['value']) . '';
break;
case 'textarea':
// Truncate long textareas for compact display
$text = wp_strip_all_tags((string) ($attribute['value'] ?? ''));
$snippet = function_exists('mb_substr') ? mb_substr($text, 0, 50) : substr($text, 0, 50);
$long = function_exists('mb_strlen') ? mb_strlen($text) : strlen($text);
echo esc_html($snippet . ($long > 50 ? '...' : ''));
break;
case 'number':
$nv = $attribute['value'] ?? null;
echo esc_html(is_numeric($nv) ? (string) (0 + $nv) : (string) $nv);
break;
case 'text_field':
default:
$raw = $attribute['value'] ?? '';
if (is_array($raw)) {
$flat = [];
foreach ($raw as $piece) {
$flat[] = is_scalar($piece) ? (string) $piece : '';
}
echo esc_html(implode(', ', array_filter($flat, static fn ($s) => $s !== '')));
} else {
$text = wp_strip_all_tags((string) $raw);
$snippet = function_exists('mb_substr') ? mb_substr($text, 0, 30) : substr($text, 0, 30);
$long = function_exists('mb_strlen') ? mb_strlen($text) : strlen($text);
echo esc_html($snippet . ($long > 30 ? '...' : ''));
}
break;
}
?>
40 ? '...' : '')); ?>