Выражение PHPEngine php str_replace не работает

У меня есть шаблон с поддержкой php на выходе. Однако я не могу заставить str_replace работать. Смотрите ниже код. Если я просто поставил {title} без какого-либо php, то это работает. Но когда я включаю php и помещаю {title} в функцию str_replace, у меня ничего не отображается. Я пробовал php с простым эхо 'test'; и это сработало. Это просто не парсинг {title} или других тегов полей.

{exp:channel:entries channel="one" url_title="{segment_2}"}
  <?php
    echo str_replace('old', 'new', '{title}');
  ?>
{/exp:channel:entries}

2 ответа

Решение

Это может показаться нелепым, но вы пытались удалить url_title параметр из {exp:channel:entries} тег, чтобы убедиться, что остальная часть вашего кода и логика работает правильно?

Следующий код должен вывести заголовок записи "старый тест" (без кавычек):

{exp:channel:entries channel="channel_name" entry_id="xx" dynamic="off"}
    {title} 
{/exp:channel:entries}

Учитывая тот же заголовок записи "старый тест", это должно вывести: "новый тест" (опять же, без кавычек):

{exp:channel:entries channel="channel_name" entry_id="xx" dynamic="off"}
    <?php
        echo str_replace('old', 'new', '{title}');
    ?>
{/exp:channel:entries}

Это было успешно проверено в новом пустом шаблоне с включенным PHP и значением " Вывод".

Скриншот

Вы можете попробовать встроить шаблон с вашим PHP и отправить переменную таким образом. Синтаксический анализ ввода / вывода иногда не имеет значения для некоторых элементов.

Другие вопросы по тегам