窗口小部件设置禁用 - WordPress

时间:2018-02-23 14:33:39

标签: wordpress wordpress-theming

所以问题是当在窗口小部件区域中删除新窗口小部件时,设置和字段消失,按下保存按钮会再次出现。

下面的屏幕截图

Screenshot

CODE OF ONE OF THE WIDGETS. 其中一个小部件的实际代码。主题名称替换为单词example。

    <?php

class example_category_widget extends WP_Widget {
    public function __construct() {
        $widget_options = array( 'classname' => 'example_category', 'description' => 'Category List' );
        parent::__construct( 'example_category', esc_html__('example - Category', 'textdomain' ), $widget_options );
    }

    public function widget( $args, $instance ) {
        $title = ! empty( $instance['title'] ) ? $instance['title'] : 'Category List';
        echo $args['before_widget'] . $args['before_title'] . $title . $args['after_title'] . $args['before_content'];

        $string = '<ul class="widget-content">';
        $catlist = get_terms( 'category' );
        if ( ! empty( $catlist ) ) {
            foreach ( $catlist as $key => $item ) {
                $string .= '<li>'. $item->name . '<br />';
                $string .= '<em>'. $item->description . '</em> </li>';
            }
        }
        $string .= '</ul>';

        echo $string;
        wp_reset_query();
        echo $args['after_content'] . $args['after_widget'];
    }

    public function form( $instance ) {
        $title = ! empty( $instance['title'] ) ? $instance['title'] : 'Category'; ?>
        <p>
        <label for="<?php echo $this->get_field_id( 'title' ); ?>">Title:</label>
        <input type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo esc_attr( $title ); ?>" /><br/>
        </p><?php
    }
    // Apply settings to the widget instance.
    public function update( $new_instance, $old_instance ) {
        $instance = $old_instance;
        $instance[ 'title' ] = sanitize_text_field( $new_instance[ 'title' ] );
        return $instance;
    }
}
?>

注册补充工具栏的代码

function example_widgets_init() {
    register_sidebar( array(
            'name'          => esc_html__( 'Sidebar Widgets', 'textdomain' ),
            'id'            => 'primary-sidebar',
            'description'   => esc_html__( 'Add widgets here.', 'textdomain' ),
            'before_widget' => '<section id="%1$s" class="widget %2$s">',
            'after_widget'  => '</section>',
            'before_title'  => '<h2 class="background-title '.$float.'"><span>',
            'after_title'   => '</span></h2>',
            'before_content' => '<div class="widget-content"> ',
            'after_content' => '</div>',
        ) );
}


add_action( 'widgets_init', 'example_widgets_init' );

这发生在所有小部件上,但是更改主题小部件工作正常。可能是什么问题?我已经尝试禁用管理脚本和我加入管理页面的脚本。

我该如何解决这个问题?

提前致谢。

0 个答案:

没有答案