Функция shortcode_exists()
используется для проверки, зарегистрирован ли шорткод с определенным именем. Она возвращает булевое значение true
или false
, в зависимости от того, зарегистрирован ли указанный шорткод.
shortcode_exists( string $tag ): bool
- $tag (строка) — обязательный параметр. Имя шорткода, который необходимо проверить.
- Возвращаемое значение: Булево значение (
true
илиfalse
), в зависимости от того, зарегистрирован ли шорткод.
Когда использовать?
Функция полезна, когда вы хотите убедиться, что шорткод зарегистрирован перед его вызовом или перед выполнением какой-либо логики, связанной с этим шорткодом. Это особенно полезно при работе с динамическими шорткодами, которые могут быть добавлены сторонними плагинами или темами.
Пример 1: Проверка существования шорткода gallery
По умолчанию WordPress имеет шорткод gallery
, который выводит галерею изображений. Давайте проверим, зарегистрирован ли этот шорткод:
if ( shortcode_exists( 'gallery' ) ) {
echo 'Шорткод зарегистрирован.';
} else {
echo 'Шорткод не зарегистрирован.';
}
Если шорткод зарегистрирован, вы получите сообщение: Шорткод gallery зарегистрирован.
Пример 2: Проверка перед удалением шорткода
Перед удалением шорткода с помощью функции remove_shortcode()
, полезно убедиться, что шорткод существует:
if ( shortcode_exists( 'myshortcode' ) ) {
remove_shortcode( 'myshortcode' );
echo 'Шорткод [myshortcode] был успешно удален.';
} else {
echo 'Шорткод [myshortcode] не существует.';
}
Этот код сначала проверяет наличие шорткода myshortcode
, и только если он существует, удаляет его.
Пример 3: Проверка шорткода, добавленного плагином
Если у вас есть плагин, который регистрирует шорткод, и вы хотите убедиться, что этот плагин активен и шорткод доступен, используйте shortcode_exists()
:
if ( shortcode_exists( 'contact_form' ) ) {
echo 'Шорткод [contact_form] доступен.';
} else {
echo 'Шорткод [contact_form] не зарегистрирован. Возможно, плагин отключен.';
}
Это позволит вам отображать уведомление или альтернативный контент, если нужный шорткод недоступен.
Пример 4: Проверка перед рендерингом контента
Можно использовать функцию для проверки шорткода перед выводом контента:
$content = '[custom_shortcode]';
if ( shortcode_exists( 'custom_shortcode' ) ) {
echo do_shortcode( $content );
} else {
echo 'Шорткод [custom_shortcode] не зарегистрирован.';
}
Если шорткод существует, контент будет обработан и выведен. В противном случае будет выведено сообщение о том, что шорткод не зарегистрирован.
Заключение
Функция shortcode_exists()
— это полезный инструмент для проверки наличия шорткодов в WordPress. Она позволяет избежать ошибок, связанных с отсутствием шорткодов, и обеспечивает безопасное выполнение логики, зависящей от шорткодов.