WordPress: можно ли добавить виджет в нижний колонтитул / боковую панель при активации виджета? - PullRequest
0 голосов
/ 05 марта 2020

Мне удалось выполнить решение fuxia при добавлении виджета по умолчанию на боковую панель нижнего колонтитула, но виджет не "активирован" (я должен удалить и вручную добавить его обратно на боковую панель нижнего колонтитула для виджет для работы, что делает заранее установленный код виджета бессмысленным). Я обнаружил, что виджет, добавленный вышеупомянутым решением, и тот же виджет, извлеченный из списка доступных виджетов, различаются. На рисунке ниже показаны различные значения href для элементов виджета в списке нижних колонтитулов. (Серые поля - это просто имя виджета) WidgetDiffs

Я не уверен, что это является причиной проблемы, но есть ли способ добавить виджет на боковую панель нижнего колонтитула И он работает / "активирован"?

РЕДАКТИРОВАТЬ: текущая реализация

add_action( 'widgets_init', function(){
    register_widget( 'MyWidget' );

    $sidebars = array ('a' => 'sidebar-1' );
    foreach ( $sidebars as $sidebar ) {
      register_sidebar(array (
      'name' => 'Footer',
      'id' => $sidebar,
      'before_title' => '<h2 class="widget-title">',
      'after_title' => '</h2>'
      ));
    }

    $active_widgets = get_option( 'sidebars_widgets' );
    if ( ! empty ( $active_widgets[ $sidebars['a'] ] )){ 
    return; }
    $counter = 1;
    $active_widgets[$sidebars['a']][0] = 'my_widget-'.$counter;
    update_option('sidebars_widgets',$active_widgets);
    dynamic_sidebar('sidebar-1');
}

1 Ответ

0 голосов
/ 05 марта 2020

Вы можете проверить с помощью следующего кода?

функции. php

add_action( 'widgets_init', 'custom_sidebars' );

/*Custom widgets*/
function aavishkaar_custom_sidebars(){

register_sidebar(
      array (
           'name'          =>  __( 'Footerwidget', 'Aavishkaar' ),
           'id'            =>  'footer-widget1',
           'description'   =>  __( 'Footer widget', 'Aavishkaar' ),
           'before_widget' =>  '<div class="col-md-2 col-3 footer-pd_0 widget_ul">',
           'after_widget'  =>  "</div>",


    )
);

}

Then add menu to this and call it by  <?php dynamic_sidebar('footer-widget1');?>
...