Был добавлен виджет. Он корректно отображается в списке виджетов и добавлется в список активных виджетов на сайдбаре. На самом сайдбаре виджеты уже работали и все было хорошо. Однако, после добавления нового своего виджета, всё ниже в списке виджетов пропадает.
Т.е. у меня есть 5 виджетов, и если я добавлю свой 3м, то 4 и 5 не будут отображаться. Если я добавлю виджет 5м, то все 4 будут отображаться
код виджета
<?php
class sidebarOnDesktopHtml extends WP_Widget {
/*
* создание виджета
*/
function __construct() {
parent::__construct(
'sidebar_on_desktop_html_widget',
'HTML код, отображаемый только на desktop', // заголовок виджета
array( 'description' => 'Позволяет добавить HTML код, который будет скрыт на мобильных устройствах' ) // описание
);
}
/*
* фронтэнд виджета
*/
public function widget( $args, $instance ) {
$title = apply_filters( 'widget_title', $instance['title'] ); // к заголовку применяем фильтр (необязательно)
$html_code = $instance['html_code'];
echo $html_code;
wp_reset_postdata();
echo $args['after_widget'];
}
/*
* бэкэнд виджета
*/
public function form( $instance ) {
if ( isset( $instance[ 'title' ] ) ) {
$title = $instance[ 'title' ];
}
if ( isset( $instance[ 'html_code' ] ) ) {
$html_code = $instance[ 'html_code' ];
}
?>
<p>
<label for="<?=$this->get_field_id( 'title' ); ?>">Заголовок</label>
<input class="widefat" id="<?=$this->get_field_id( 'title' ); ?>" name="<?=$this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
<p>
<label for="<?=$this->get_field_id( 'html_code' ); ?>">Содержимое:</label>
<textarea id="<?=$this->get_field_id( 'html_code' ); ?>" name="<?=$this->get_field_name( 'html_code' ); ?>" class="widefat code content" rows="16" cols="20"><?php echo esc_attr( $html_code ); ?></textarea>
</p>
<?php
}
/*
* сохранение настроек виджета
*/
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = !empty( $new_instance['title'] ) ? strip_tags( $new_instance['title'] ) : '';
$instance['html_code'] = !empty( $new_instance['html_code']) ? $new_instance['html_code'] : '';
return $instance;
}
}
/*
* регистрация виджета
*/
function sidebar_on_desktop_html() {
register_widget( 'sidebarOnDesktopHtml' );
}
add_action( 'widgets_init', 'sidebar_on_desktop_html' );