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. |