Компонент ExternalLink
в WordPress — это простой React-компонент, предназначенный для создания ссылки на внешний ресурс. Этот компонент автоматически добавляет атрибут rel="noopener noreferrer"
к ссылке для повышения безопасности и улучшения производительности, предотвращая потенциальные проблемы с безопасностью при открытии ссылки в новом окне.
Основное использование компонента ExternalLink
Для начала рассмотрим базовое использование ExternalLink
. Компонент рендерится как обычная ссылка (<a>
), но добавляет настройки безопасности, чтобы защитить ваш сайт при переходе пользователя на внешний ресурс.
import { ExternalLink } from '@wordpress/components';
const MyExternalLink = () => (
<ExternalLink href="https://wordpress.org">Посетите WordPress.org</ExternalLink>
);
В этом примере ExternalLink
создает ссылку на WordPress.org с текстом «Посетите WordPress.org».
Описание Props для ExternalLink
Компонент ExternalLink
поддерживает всего два основных параметра:
1. children: ReactNode
Содержимое, которое будет отображаться внутри ссылки. Обычно это текст, который пользователь видит и по которому может кликнуть.
- Обязательный: Да
- Тип:
ReactNode
<ExternalLink href="https://example.com">Нажмите для перехода</ExternalLink>
2. href: string
URL-адрес внешнего ресурса, на который ведет ссылка. Убедитесь, что указанный URL начинается с http://
или https://
для корректного перенаправления на внешнюю страницу.
- Обязательный: Да
- Тип:
string
<ExternalLink href="https://example.com">Посетите Example.com</ExternalLink>
Дополнительно, любые другие параметры, не включенные в этот список, будут переданы в элемент <a>
напрямую. Например, вы можете добавить атрибут target="_blank"
, чтобы ссылка открывалась в новом окне.
Пример 1: Открытие ссылки в новом окне
С помощью атрибута target="_blank"
можно настроить компонент так, чтобы ссылка открывалась в новом окне или вкладке. Это полезно для улучшения пользовательского опыта, особенно если вы хотите, чтобы пользователи оставались на текущей странице после перехода на внешний ресурс.
import { ExternalLink } from '@wordpress/components';
const OpenInNewTabLink = () => (
<ExternalLink href="https://developer.wordpress.org" target="_blank">
Посетите документацию WordPress
</ExternalLink>
);
Здесь ссылка откроется в новой вкладке браузера, позволяя пользователю оставить текущую страницу открытой.
Пример 2: Использование ExternalLink
с дополнительными CSS-классами
Вы можете добавить CSS-классы к ExternalLink
для стилизации ссылки. В этом примере используется пользовательский класс custom-link-style
, чтобы применить уникальный стиль к внешней ссылке.
import { ExternalLink } from '@wordpress/components';
const StyledExternalLink = () => (
<ExternalLink href="https://www.example.com" className="custom-link-style">
Перейти на Example.com
</ExternalLink>
);
В данном случае компонент ExternalLink
примет класс custom-link-style
, который можно использовать для стилизации ссылки в CSS:
.custom-link-style {
color: #0063e5;
font-weight: bold;
text-decoration: underline;
}
Пример 3: ExternalLink
с иконкой
Вы можете добавить иконку перед текстом ссылки, чтобы визуально указать на то, что это внешний ресурс. Это можно сделать, добавив элемент <span>
или иконку из сторонней библиотеки рядом с children
.
import { ExternalLink } from '@wordpress/components';
import { Icon, external } from '@wordpress/icons';
const ExternalLinkWithIcon = () => (
<ExternalLink href="https://wpbeginner.com" target="_blank">
<Icon icon={external} style={{ marginRight: '4px' }} />
Посетите WPBeginner
</ExternalLink>
);
В этом примере компонент Icon
с иконкой external
добавляется перед текстом ссылки. Это помогает пользователю понять, что ссылка ведет на внешний ресурс.
Пример 4: ExternalLink
с условным отображением
Если вам нужно динамически отображать внешнюю ссылку в зависимости от состояния приложения, ExternalLink
может быть легко интегрирован в условные выражения.
import { useState } from 'react';
import { ExternalLink } from '@wordpress/components';
const ConditionalExternalLink = () => {
const [showLink, setShowLink] = useState(false);
return (
<div>
<button onClick={() => setShowLink(!showLink)}>
{showLink ? 'Скрыть ссылку' : 'Показать ссылку'}
</button>
{showLink && (
<ExternalLink href="https://css-tricks.com">
Узнать больше на CSS-Tricks
</ExternalLink>
)}
</div>
);
}
Здесь кнопка управляет состоянием showLink
, которое определяет, отображается ли ссылка. Это полезно, когда вам нужно динамически показывать или скрывать внешний ресурс.
Пример 5: Локализация текста для ExternalLink
Для многоязычных сайтов важно, чтобы текст внутри ссылки был переведен. Вы можете использовать функцию __
из @wordpress/i18n
для перевода содержимого компонента.
import { ExternalLink } from '@wordpress/components';
import { __ } from '@wordpress/i18n';
const TranslatedExternalLink = () => (
<ExternalLink href="https://polylang.pro">
{__('Посетите Polylang для управления переводами', 'text-domain')}
</ExternalLink>
);
В этом примере текст ссылки переводится с использованием функции __
и текстового домена 'text-domain'
. Этот подход удобен для интеграции компонента в темы и плагины, поддерживающие многоязычность.
Заключение
Компонент ExternalLink
— это удобный и безопасный способ добавления внешних ссылок в приложение WordPress. Он автоматически добавляет параметры безопасности, а также позволяет легко настроить поведение и стиль ссылки.
Использование ExternalLink
упрощает процесс создания ссылок на внешние ресурсы, улучшая безопасность и позволяя быстро адаптировать ссылки к требованиям интерфейса.