Сохранение вывода из функции php - PullRequest
0 голосов
/ 13 июля 2011

Я думаю, что я немного над этим разбираюсь, но у меня есть функция wordpress, которой я не могу управлять, и она выводит HTML.

Специально выводит тег <a>. Когда я пытаюсь сохранить этот вывод в переменную, он просто выводит якорный тег, хотя я думал, что сохранил вывод.

Я говорил с кем-то, кто знает об этом больше, и они сказали, что функция, вероятно, использует свою собственную систему вывода.

Мне интересно, есть ли способ сохранить вывод функций до того, как он выведет их на экран? Вот так (но это не работает):

$link = wp_function();

Это выводит тег и не сохраняет данные.

Ответы [ 5 ]

4 голосов
/ 13 июля 2011
<?php
ob_start();
wp_function();
$link = ob_get_contents();
ob_end_clean();
?>

Та же проблема здесь, Как записать вывод PHP в переменную?

2 голосов
/ 13 июля 2011

Wordpress имеет два типа функций: -

  1. Функции, которые ничего не возвращают, но отражают вывод.
  2. Функции, которые ничего не отражают, но возвращают вывод для дальнейшего использования.

Все большинство всех функций имеют префикс get_ для возврата значения.

для примера the_title просто вывести заголовок, тогда как get_the_title возвращает заголовок.

Поиск, если функция имеет свою версию get_, и используйте их.

1 голос
/ 13 июля 2011

http://us2.php.net/manual/en/ref.outcontrol.php это может помочь с дополнительными функциями

1 голос
/ 13 июля 2011

Вы должны быть в состоянии позвонить ob_start до вашего wp_function() вызова и затем использовать ob_get_flush():

ob_start();
wp_function();
$link = ob_get_flush();
0 голосов
/ 07 октября 2014

Какую функцию вы используете именно?Вы пытались передать аргумент 'echo' => false?Я имел эту проблему при использовании функции wp_nav_menu () и исправил ее с помощью этого аргумента:

$menu = wp_nav_menu( 'echo' => false );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...