get_shortcode_regex()

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

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] => [gallery include="1298,1297" /]
            [1] => 
            [2] => gallery
            [3] =>  include="1298,1297" 
            [4] => /
            [5] => 
            [6] => 
        )
 
    [1] => Array
        (
            [0] => [gallery include="1,2"]
            [1] => 
            [2] => gallery
            [3] =>  include="1,2"
            [4] => 
            [5] => 
            [6] => 
        )
 
)
*/
 
// например мы можем пройтись циклом по непосредственно тегам шорткодов галереи
foreach( $matches as $match ) {
	$match = reset( $match );
	echo $match;
}
/*
[gallery include="1298,1297" /]
[gallery include="1,2"]
*/

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал