Вызов боковой панели, созданной WooSidebars в Timber

Я использовал WooSidebars во многих проектах, чтобы иметь возможность настраивать боковые панели, как при использовании ACF. Однако это первый раз, когда я решил также использовать его в рамках Timber Framework. У меня есть боковая панель, зарегистрированная в моем functions.php, и сама боковая панель работает. Теперь, если я создаю боковую панель с помощью WooSidebars и пытаюсь отложить в нее виджеты, кажется, что переопределения, которые выполняет WooSidebars, не принимаются Тимбером.

Я звоню:

$context['sidebar'] = Timber::get_widgets('page');

А внутри плагина я создаю область виджетов, чтобы заменить page на странице контактов с другой боковой панелью. Timber продолжит использовать только page боковую панель, а не переопределение. Однако если я позвоню

$context['sidebar'] = Timber::get_widgets('contact-us-sidebar');

вручную это будет работать.

Есть ли способ сообщить контексту Timber, что мне нужна боковая панель, поставляемая с WooSidebar, вместо буквальной боковой панели по умолчанию?


person Tim Knight    schedule 11.04.2016    source источник


Ответы (1)


На протяжении многих лет мне удавалось решить эту проблему двумя способами, хотя ни один из них не кажется мне идеальным, работа выполняется.

  1. Не используйте виджеты для управления содержимым боковой панели, а вместо этого управляйте им на странице в настраиваемом поле.
  2. Если вы хотите / должны использовать виджеты, я затем создаю настраиваемое поле раскрывающегося списка, в котором есть все виджеты, используя их идентификатор в качестве значения. Затем я беру это значение и передаю его в Timber::get_widgets, чтобы получить нужную мне боковую панель для страницы.
person Tim Knight    schedule 01.03.2018