Intereting Posts
Как найти стороннюю страницу, представленную в виде пули на моем веб-сайте WordPress? Как ограничить параметры статуса для массового / быстрого редактирования только опубликованными и черновыми? Показывать текущие сообщения пользователя в запросе типа пользовательского сообщения Как применить фильтр в галерее внутри the_content ()? проблема при добавлении wp_editor с ajax Есть ли способ включить массовое редактирование и быстрое редактирование пользовательских типов сообщений? Записи ежемесячного архива WordPress приводят к 404 Пользовательский архив типа сообщения и файлы single.php не работают Гравитационные формы не загружаются под https, jQuery не определен Поиск темы Twenty Twelve не найден Зафиксировать короткий код? Самый надежный способ для массового удаления исправлений Как включить пользовательскую форму оплаты в WordPress? После того, как вы закроете кнопку браузера в двадцати шестнадцати профиль темы $ wpdb-> get_results не возвращает массив

используя get_template_part () внутри виджета и передающих переменные

Я читал, что get_template_part() должен использоваться только темами не плагинами, я не знаю, считается ли его использование внутри функции виджета (созданной темой) плагином или нет.

Во всяком случае, я пытаюсь передать переменные виджета ($ myvar) в шаблон ('loop.php' в моем случае), но он не извлекает его даже при использовании global $myvar; внутри шаблона.

Вот мой код функции виджета:

 function widget($args, $instance) { extract( $args ); $title = apply_filters('widget_title', $instance['title']); echo $before_widget; if ($title) { echo $before_title.$title.$after_title; } $myvar = 'start'; get_template_part('loop'); ?> echo $after_widget; } 

Solutions Collecting From Web of "используя get_template_part () внутри виджета и передающих переменные"

Действительно, get_template_part предназначен для использования только в темах, хотя это будет включать виджеты внутри вашей темы. Глядя на исходный код функции, вы увидите, что основная причина этого заключается в том, что get_template_part делает некоторые дополнительные связанные с темой темы, прежде чем он locate_template не по умолчанию.

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

См. Этот ответ для передачи переменной в шаблон.

Вы можете использовать set_query_var('myvarname', $myvarvalue); перед get_template_part() . Затем в шаблоне цикла вы можете получить доступ к var с помощью $myvarname .

Вы также можете пропустить все это и использовать шаблон локации .