У меня есть система SHORTCODE, что будет срабатывать функция, если короткий код находится на странице загрузки, как так:preg_replace в строке заказа найдено
[[gallery]]
Проблема мне нужно напечатать любой текст или другой HTML найден между короткими кодами в том порядке, в котором они найдены.
[[gallery]]
This is a nice gallery
[[blog id=1]]
This is a recent blog
[[video]]
Here is a cool video!
то, что я до сих пор это:
если нет [[шорткоды]] найдены, нет необходимости запускать функцию SHORTCODE, мы просто напечатать тело содержания.
if(!preg_match('#\[\[(.*?)\]\]#', $page_content, $m1)){
print $page_content;
}
это удаляет любые шорткоды и печатает текст, но только печатает его выше всех, которые короткие номера найдены.
if(preg_match('#\[\[(.*?)\]\]#', $page_content, $m1)){
$theFunction1 = $m1[0];
$page_text = preg_replace('#\[\[(.*?)\]\]#', '',$page_content);
print $page_text;
}
если мы находим какие-либо [[шорткоды]], мы петлю через них и передать их функции, чтобы обрабатывать их с помощью обратного вызова.
if(preg_match_all('#\[\[(.*?)\]\]#', $page_content, $m)){
foreach($m[0] as $theFunction){
print shortcodify($theFunction);
}
}
preg_replace не отображает их в порядке $ page_content var, поскольку они найдены. Даже когда я поставил preg_replace в цикле Еогеаспа я получаю результаты, как это:
This is a nice gallery
This is a recent blog
This is a recent blog
[[gallery]] (gallery loads)
This is a nice gallery
This is a recent blog
This is a recent blog
[[blog id=1]] (the blog displays)
This is a nice gallery
This is a recent blog
This is a recent blog
[[video]] (video plays)
Итак, как вы можете видеть .. он дублирует все вхождения между короткими номерами. Мне нужно напечатать их по порядку.
Спасибо! он работает отлично! –
@SonnyKing: Добро пожаловать, рад, что это помогает. – Toto