Мне нужно разрешить пользователям использовать короткий код [warning]
во внешнем интерфейсе моего сайта.Этот шорткод может сопровождаться только одним [warning](arg1)
или двумя аргументами [warning](optional-arg)(arg1)
. При вводе двух аргументов первый optional-arg
будет рассматриваться как заголовок, а второй arg1
как основной текст и, если он только одинarg1
будет рассматриваться как основной текст.
Вот код, которым я управляю
function warning($text) {
$text = preg_replace('/\[warning\]\s*\((.*?)\)/', '<div class="alert alert-error"><div class="alert-content"> $1 </div></div>', $text); //for warning with body text only
$text = preg_replace('/\[warning\]\s*\((.*?)\)\s*\((.*?)\)/', '<div class="alert alert-error"><div class="alert-content"><h2 class="alert-title"> $1 </h2><div class="alert-body"><p> $2 </p></div></div></div>', $text); //for warning with heading
return $text;
}
add_filter('the_content', 'warning');
add_filter( 'the_excerpt', 'warning');
Проблема в том, что второй аргумент не рассматривается и отсутствуетокна предупреждения.