Убрать вступительный текст из полного. Есть решение
Текст в блоге убран под кат.
На странице блога все нормально: видим вступительный текст (то что находится в $post.text_before_cut)
При переходе по ссылке "Читать далее" видим полный текст (тот что находится в $post.text)
Задача из полного текста ($post.text) удалить вступительный текст ($post.text_before_cut)
Делаю так
$ptbc = $post.text_before_cut
$post.text|regex_replace:"/`$ptbc`/xm":""
Получаю страницу без теста вообще: Заголовок, а под ним ничего
Проблема, скорее всего где-то в регулярке .. но вот где?
1 ответ
Внутри $ptbc наверняка много символов, которые ломают регулярку.
То, что вы пытаетесь сделать, проще всего сделать вот так:
{$text=explode('<!-- more',$post.text,2)}
{if !empty($text[1])}{$text='<!--'|cat:$text[1]}{else}{$text=$post.text}{/if}
После этого в переменной $text будет всё, что в посте идёт после ката. Если ката нет, то будет полный текст.
Ещё рекомендую на время разработки включить отображение ошибок PHP, чтобы понимать, что где сломалось и почему.
// UPD: исправил код, чтобы работало, если изменить надпись на кате.