Функция возвращает регулярное выражение, которое можно использовать для поиска шорткодов в строке. Можете сразу перейти к примерам, чтобы посмотреть на практическое применение этой функции.
get_shortcode_regex( $tagnames = null )
Параметры
- $tagnamesмассивнеобязательный
- Этот параметр позволяет ограничить регулярное выражение какими-либо определёнными шорткодами.
Примеры
1. Как выглядит регулярное выражение
echo get_shortcode_regex( array( 'gallery' ) ); /* [([?)(gallery)(?![w-])([^]/]*(?:/(?!])[^]/]*)*?)(?:(/)]|](?:([^[]*+(?:[(?!/2])[^[]*+)*+)[/2])?)(]?) */
2. Находим все галереи в контенте
Обратите внимание, что при помощи функции get_shortcode_regex()
, а также PHP-функции preg_match_all()
мы можем не только определить наличие шорткода в контенте (хотя для этого у нас уже есть функция has_shortcode()), но и получить непосредственно теги шорткодов.
preg_match_all( '/' . get_shortcode_regex( array( 'gallery' ) ) . '/', $post->content, $matches, PREG_SET_ORDER ); print_r( $matches ); /* Array ( [0] => Array ( [0] => [1] => [2] => gallery [3] => include="1298,1297" [4] => / [5] => [6] => ) [1] => Array ( [0] => [1] => [2] => gallery [3] => include="1,2" [4] => [5] => [6] => ) ) */ // например мы можем пройтись циклом по непосредственно тегам шорткодов галереи foreach( $matches as $match ) { $match = reset( $match ); echo $match; } /* */