Время чтения: 1 мин.
Создать простой плагин для WordPress, который добавляет атрибут target="_blank"
ко всем внешним ссылкам в контенте, довольно просто. Вот пример кода для такого плагина:
Шаги для создания плагина:
- Создайте папку для плагина в директории
wp-content/plugins/
. Назовите её, например,external-links-target-blank
. - Внутри этой папки создайте файл
external-links-target-blank.php
. - Вставьте следующий код в этот файл:
<?php
/*
Plugin Name: External Links Target Blank
Description: Добавляет атрибут target="_blank" ко всем внешним ссылкам в контенте.
Version: 1.0
Author: Ваше имя
*/
function eltb_add_target_blank_to_external_links($content) {
// Регулярное выражение для поиска внешних ссылок
$pattern = '/<a(.*?)href=["\'](https?:\/\/[^"\']+)["\'](.*?)>/i';
// Замена ссылок с добавлением target="_blank"
$content = preg_replace_callback($pattern, function($matches) {
// Проверяем, есть ли уже атрибут target
if (strpos($matches[0], 'target=') === false) {
return '<a' . $matches[1] . 'href="' . $matches[2] . '" target="_blank"' . $matches[3] . '>';
} else {
// Если атрибут target уже есть, заменяем его на target="_blank"
return preg_replace('/target=["\']_?[^"\']*["\']/', 'target="_blank"', $matches[0]);
}
}, $content);
return $content;
}
// Применяем функцию к контенту
add_filter('the_content', 'eltb_add_target_blank_to_external_links');
Как работает этот плагин:
- Регулярное выражение: Плагин ищет все ссылки (
<a>
) в контенте, которые ведут на внешние ресурсы (начинаются сhttp
илиhttps
). - Добавление
target="_blank"
: Если у ссылки нет атрибутаtarget
, он добавляется. Если атрибут уже есть, он заменяется наtarget="_blank"
. - Фильтр
the_content
: Плагин применяет эту функцию ко всему контенту, который выводится черезthe_content()
.
Установка плагина:
- Загрузите папку
external-links-target-blank
в директориюwp-content/plugins/
. - Перейдите в админ-панель WordPress.
- Перейдите в раздел Плагины.
- Найдите плагин External Links Target Blank и активируйте его.
После активации плагина все внешние ссылки в вашем контенте будут автоматически открываться в новой вкладке.
Примечания:
- Плагин не изменяет ссылки в виджетах или других областях, только в основном контенте (через
the_content
). - Если вам нужно обрабатывать ссылки в других местах (например, в виджетах), можно добавить дополнительные фильтры, такие как
widget_text
илиcomment_text
.
Этот плагин простой и легковесный, но он отлично справляется с задачей добавления target="_blank"
к внешним ссылкам.
Добавить комментарий