Как получить сайдбар в переменную?

14 июл. 2011 г., 16:10:23
Просмотры: 14.1K
Голосов: 6

Я хочу получить сайдбар и сохранить его в переменную.
Это невозможно с функцией get_sidebar, так как она просто выводит
сайдбар на экран. Есть ли другая функция, которую я могу использовать?

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

Что вы хотите сделать с этой переменной?

Chip Bennett Chip Bennett
14 июл. 2011 г. 16:12:19

Я хочу добавить виджеты из контента "страницы", поэтому пытаюсь заменить теги типа %SIDEBAR_3% на реальный сайдбар. Использую str_replace, но мне нужна функция, которая что-то возвращает

Asaf Asaf
14 июл. 2011 г. 16:18:41
Все ответы на вопрос 2
1
18

Вероятно, вам нужно использовать буферизацию вывода, если я правильно понял ваш вопрос.

Попробуйте что-то вроде этого:

ob_start();
dynamic_sidebar('sidebar-id');
$sidebar = ob_get_contents();
ob_end_clean();

Это поместит вывод сайдбара в переменную $sidebar, которую вы затем сможете обработать и вернуть из вашего фильтра в контенте страницы.

14 июл. 2011 г. 19:34:18
Комментарии

сработало для меня! спасибо! пришлось сохранить весь HTML-вывод футера в транзиенте. спасибо!

Amit Amit
1 сент. 2011 г. 00:14:21
0

Функция get_sidebar() является функцией включения, используемой для подключения файла sidebar.php.

Функция, которая вам нужна, это dynamic_sidebar() (Ссылка на Codex), при условии что вы знаете ID динамического сайдбара, который хотите использовать.

14 июл. 2011 г. 16:26:54