Рубрика «Шпаргалки»

Приёмы, помогающие в работе.

WordPress: как убрать обёртки виджетов

24 марта 2020. Рубрики: Шпаргалки; автор — Княгиня.

Вордпресс по умолчанию подставляет виджетам обёртки с классом. Часто эти обёртки бывают ненужными, а иногда просто мешают. Чтобы убрать обёртки у виджетов типа «Текст» и «Html-код», нужно добавить в файл function.php следующий код:

function my_register_sidebars(){
  /*здесь может быть регистрация новых виджетов*/
  register_widget('My_Text_Widget');
  register_widget('My_HTML_Widget');
}
class My_Text_Widget extends WP_Widget_Text{
  function widget($args, $instance){
    extract($args);
    $title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
    $text = apply_filters('widget_text', empty($instance['text']) ? '' : $instance['text'], $instance);
    echo $before_widget;
    if (!empty($title)){
      echo $before_title . $title . $after_title;
    }
    echo !empty($instance['filter']) ? wpautop($text) : $text;
    echo $after_widget;
  }
}
class My_HTML_Widget extends WP_Widget_Custom_HTML{
  function widget($args, $instance){
    extract($args);
    $title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
    $text = apply_filters('widget_text', empty($instance['content']) ? '' : $instance['content'], $instance);
    echo $before_widget;
    if (!empty($title)){
      echo $before_title . $title . $after_title;
    }
    echo !empty($instance['filter']) ? wpautop($text) : $text;
    echo $after_widget;
  }
}

2 комментария »