get_shortcode_regex()

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Функция возвращает регулярное выражение, которое можно использовать для поиска шорткодов в строке. Можете сразу перейти к примерам, чтобы посмотреть на практическое применение этой функции.

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;
}
/*


*/
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии