Задать вопрос
@uzi_no_uzi

Как сохранть значение выведенное через echo в переменную?

Столкнулся с одной проблемой, на первый взгляд все не просто. Предлагаю два есть две вариации вопроса

Первая из них изолированна от остального, но отражает всю суть того, что нужно получить в конечном итоге

function func() {
    echo '20';
};

func();


Нужно сохранить то, что выводиться с помощью echo в переменную. При этом нельзя менять саму функцию, а так же нужно удалить вывод на страницу от самого echo, т.е. в итоге у нас в переменной должно находиться число 20, а на страницу ничего не должно выводиться.

Далее вторая вариация вопроса и зачем это все вообще нужно.

Есть плагин для WordPress - Advanced Custom Fields

Есть допустим три страницы, на каждой из них нужно выводить разные посты, при этом эти страницы пользователь сам может создавать. Я придумал такую схему:

1. Создать метку
2. Через custom fields при создании страницы передавать название метки в код
3. Генерировать посты с учетом полученной метки

Таким образом юзер может создавать страницу и генерировать на ней новые посты.

Но беда в том, что плагин не возвращает значение, которое было введено юзером в поле, а просто выводит через echo под капотом как я понял. Моих познаний в PHP не достаточно чтобы исправлять что-то под капотом. Есть какие-нибудь варианты по поводу решения?
  • Вопрос задан
  • 207 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
bitniks
@bitniks
Go/PHP/Symfony developer
function func() {
    echo '20';
};

ob_start();
func();
$result = ob_get_contents();
ob_end_clean();
Ответ написан
Комментировать
@Mysterion
function func() {
    return 20;
}

ob_start();
$result = func();
ob_clean();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@Catrinblaidd
function func() {
    $result = '20';
    return $result;
};

$result = func();
Ответ написан
@mefutu
В документации у ACF есть вывод the_field('name'); - тут через echo,print работает, а есть get_field('name') - возвращает переменную. Т.е $myvar = get_field('name');

P.s get_field или get_the_field - путаюсь иногда... Посмотрите офф документацию, там это есть.
Ответ написан
Комментировать
@procode
Разработчик
На первый ответили - отвечу на второй:

Мастерить какие-то изыски с вордпресс не понимая и не умея работать с хуками и фильтрами - это дохлый номер.

Про знание php я уже и не говорю - это как бы само собой.

Хорошая новость состоит в том, что разобраться в этом таки можно в более-менее обозримые сроки))

Удачи!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы