Есть сайт на wordpress. Интересует как в php переменную записать вывод html и содержимое echo.
Пробую так:
<?php $s = '<p><a class="lostpassword" href="'. echo wp_lostpassword_url(). '">'. _e('Lost Password', 'memberdeck') . '</a></p>'; ?>
и пробую так:
<?php $s = '?><p><a class="lostpassword" href="<?php echo wp_lostpassword_url() ?>"><?php _e('Lost Password', 'memberdeck') ?></a></p><?php '; ?>
не получается..
Для записи вывода в строку в php есть средства работы с буфером вывода.
ob_start();
// любой код php с выводом на экран
$s = ob_get_clean();
В результате выполнения этого кода весь планируемый вывод на экран попадёт в строку $s.
В применении к вашему коду (насколько я понял вопрос), должно выглядеть так:
ob_start();
echo '<p><a class="lostpassword" href="'. wp_lostpassword_url(). '">'. __('Lost Password', 'memberdeck') . '</a></p>';
$s = ob_get_clean();
А можно ещё проще:
$s = '<p><a class="lostpassword" href="'. wp_lostpassword_url(). '">'. __('Lost Password', 'memberdeck') . '</a></p>';
Функцию _e() надо заменить на __(), потому что первая производит вывод, а вторая - просто возвращает строку.
ob_start();
echo '<p><a class="lostpassword" href="'. wp_lostpassword_url() . '">'. _e('Lost Password', 'memberdeck') .'</a></p>';
$s = ob_get_clean();
вот так должно работать, пробуйте
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости