Функция MAKE_CLICKABLE() в WordPress
Функция make_clickable() в WordPress позволяет преобразовать обычные текстовые ссылки (URI) в кликабельные HTML-ссылки. Она автоматически заменяет URL-адреса, адреса электронной почты и другие ссылки на активные гиперссылки. Эта возможность полезна для улучшения пользовательского опыта и интеграции ссылок в контент.
Основная информация
- Версия WordPress: 0.71 и выше
- Время выполнения:
- 1 раз — 0.000662 сек (медленно)
- 50000 раз — 6.64 сек (быстро)
- PHP версия: 7.1.11
- Место в файлах:
wp-includes/formatting.php - Возвращаемое значение: строка — контент с преобразованными URI.
Как использовать
Для того чтобы использовать функцию, нужно вызвать make_clickable() с текстом в качестве аргумента.
Синтаксис
make_clickable( $text );
- $text (строка) — Контент, в котором будут преобразованы URIs.
Примеры использования
Пример 1: Преобразование ссылки в текст
Пусть у нас есть текст с URL, который мы хотим сделать кликабельным:
Результат:
Некоторый текст http://example.com/page-108 и другой текст.
Пример 2: Открытие ссылок в новой вкладке
Чтобы сделать все URL-адреса в контенте кликабельными с атрибутом target="_blank" (что позволяет открывать ссылки в новой вкладке), используйте функцию links_add_target(). Сначала преобразуем текст с помощью make_clickable(), а затем добавим целевой атрибут:
Результат:
Некоторый текст http://example.com/page-108 и другой текст.
Как работает функция make_clickable
Функция проходит несколько этапов, чтобы преобразовать текст:
- Разделение текста: Используется регулярное выражение для разделения текста на части, игнорируя HTML-теги.
- Обработка вложенных тегов: Функция следит за уровнями вложения кода, чтобы не обрабатывать ссылки внутри определенных тегов (например,
<code>или<pre>). - Поиск и замена ссылок:
- Функция ищет URL-адреса с помощью регулярных выражений и заменяет их на кликабельные ссылки.
- Обрабатываются также ссылки без протокола (например,
www). - Извлекаются адреса электронной почты и добавляются как ссылки.
Пример кода функции
Вот упрощенная версия кода функции:
function make_clickable( $text ) {
$r = '';
$textarr = preg_split( '/(<[^<>]+>)/', $text, -1, PREG_SPLIT_DELIM_CAPTURE ); // Разделение на части.
foreach ( $textarr as $piece ) {
// Пропускаем обработку вложенных тегов.
if ( empty($piece) || '<' === $piece[0] ) {
$r .= $piece;
continue;
}
// Определение и замена URL-ссылок на кликабельные.
$url_pattern = '#b(http|https|ftp://[^s()<>]+(?:([wd]+)|([^[:punct:]s()<>]+)))#';
$piece = preg_replace($url_pattern, '$0', $piece);
$r .= $piece;
}
return $r;
}
Заключение
Функция make_clickable() в WordPress — это полезный инструмент для автоматизации процесса создания кликабельных ссылок в текстовом контенте. Она улучшает пользовательский опыт, позволяя читателям быстро переходить по ссылкам и получать доступ к необходимой информации.