has_shortcode()
Перевіряє чи в переданому тексті вказаний шоткод.
Шоткод повинен бути зареєстрований через функцію add_shotrcode() , щоб він був пізнаваний для WordPress.
Основа для:
get_post_galleries()
get_post_galleries()
1 раз – 0.000014 сек
(дуже швидко) | 50000 разів – 0.03 сек
(швидкість світла) |
PHP 7.0.8, WP 4.6.1
(дуже швидко) | 50000 разів – 0.03 сек
(швидкість світла) |
PHP 7.0.8, WP 4.6.1
Хуків немає.
Повертає
true|false
. Знайдено шоткод у тексті чи ні.
Використання
if ( has_shortcode( $content, $tag ) ) { }
-
$content
(рядок) (обов’язковий) - Текст, який слід перевірити.
-
$tag
(рядок) (обов’язковий) - Назва шоткода, який потрібно знайти у тексті.
Приклади
#1 Перевіримо чи є у записі галереї
$content = 'Це якийсь текст, (можливо переданий через $post->post_content). Він містить шоткод: .'; if( has_shortcode( $content, 'gallery' ) ) { // [Gallery] є в переданому тексті. }
#2 Вибіркове підключення скрипта на основі наявності шоткоду в тексті
Підключимо потрібний нам JavaScript (custom-script) тільки якщо в тексті знайдений потрібний нам шоткод gallery :
add_action( 'wp_enqueue_scripts', 'custom_shortcode_scripts'); function custom_shortcode_scripts() { global $post; if( has_shortcode( $post->post_content, 'gallery') ) { wp_enqueue_script('custom-script'); } }
нотатки
- Global. Масив. $shortcode_tags
список змін
З версії 3.6.0 | Введено. |
Код has_shortcode() has shortcode WP 6.0.2
function has_shortcode( $content, $tag ) { if ( false === strpos( $content, '[' ) ) { return false; } if ( shortcode_exists( $tag ) ) { preg_match_all( '/' . get_shortcode_regex() . '/', $content, $matches, PREG_SET_ORDER ); if ( empty( $matches ) ) { return false; } foreach ( $matches as $shortcode ) { if ( $tag === $shortcode[2] ) { return true; } elseif ( ! empty( $shortcode[5] ) && has_shortcode( $shortcode[5], $tag ) ) { return true; } } } return false; }