shortcode_parse_atts()
Парсит аргументы шоткода переданные в виде строки.
Передаваемая строка должна содержать только аргументы в виде пары ключ="значение"
, без самого имени шоткода и его скобок.
Работает на основе: get_shortcode_atts_regex()
1 раз — 0.000195 сек (быстро) | 50000 раз — 0.07 сек (скорость света)
Хуков нет.
Возвращает
Массив
. Список атрибутов и из значения в виде массива.
- Вернет пустой массив при
trim( $text ) == '""'
. - Вернет пустую строку при
trim( $text ) == ''
. - Все остальные совпадения проверяются через empty().
Использование
shortcode_parse_atts( $text );
- $text(строка) (обязательный)
- Строка атрибутов шоткода. Например:
module="WP" foo='bar'
.
Примеры
#1 Демонстрация работы функции
$res = shortcode_parse_atts( ' module="WP" bar="" foo=\'bar\' baz bax=' ); print_r( $res ); /* Array [module] => WP [bar] => [foo] => bar [0] => baz [1] => bax= */
#2 Вырежем и разберем параметры шоткода
Пример того, как можно вырезать строку параметров шорткода и распарсить её на отдельные ключ=значение
.
$str = <<<'STR' Контент [five_element name="big badaboom" ident="multipassport" foo='bar'] Еще Контент STR; // для этой проверки шоткод должен быть зарегистрирован в WP, см: add_shortcode() if( ! has_shortcode( $str, 'five_element' ) ){ echo 'Шоткод не найден'; } preg_match( '~\[five_element(.+)\]~s', $str, $mm ); $res = shortcode_parse_atts( $mm[1] ); print_r( $res ); /* Array ( [name] => big badaboom [ident] => multipassport [foo] => bar ) */
Список изменений
С версии 2.5.0 | Введена. |
С версии 6.5.0 | The function now always returns an array, even if the original arguments string cannot be parsed or is empty. |