str_replace заменяет строку в неправильном месте

#php #wordpress #str-replace

#php #wordpress #str-replace

Вопрос:

Я перепроектирую механизм шаблонов моего одного из плагинов WordPress. Таким образом, пользователи могут настраивать дизайн в соответствии со своими потребностями. Для этой цели. я запрашиваю строку формата шаблона с некоторыми параметрами, которые я могу заменить позже.

Пример строки шаблона :

 $template = '<a href="%POST_URL%"  title="%POST_TITLE%"><img src="%POST_THUMB%" /></a>';
  

Код:

 $temp .= $template;
$temp = str_replace("%POST_TITLE%", $ptitle, $temp);
$temp = str_replace("%POST_URL%", the_permalink(), $temp);
$temp = str_replace("%POST_THUMB%", lead_img_thumb_post($width ,$height ,$imagepath ,$icontype ), $temp);
  

Вывод:

 %POST_URL%%POST_URL%%POST_URL%<a href=""  title="%POST_TITLE%"><img src="%POST_THUMB%" /></a><a href=""  title="%POST_TITLE%"><img src="%POST_THUMB%" /></a><a href=""  title="%POST_TITLE%"><img src="%POST_THUMB%" /></a>
  

Почему %POST_URL% продвигается вперед

Комментарии:

1. Попробуйте изменить имена переменных

2. $temp Пусто, когда вы добавляете $template к ней?

3. Совет: str_replace поддерживает массивы.

Ответ №1:

Вместо этого вам нужно использовать get_the_permalink() . the_permalink() выводит ссылку в направлении браузера. Использование get_whatever() вместо этого приведет к тому, что WP вернет данные вместо их вывода.