नोटिस: वर्डप्रेस विजेट में अपरिभाषित सूचकांक

मैंने यह विजेट किया है। व्यवस्थापक क्षेत्र में, जब मैं चर संख्या का मान बदलता हूं, छोटे और बड़े सहेजे नहीं जाते हैं। और आगे की ओर मेरे पास यह नोटिस है:

नोटिस: अपरिभाषित अनुक्रमणिका: लाइन 272 पर /home/masqueci/public_html/wp-content/themes/Flatnews/includes/theme-widgets.php में संख्या

शीर्षक चर को छोड़कर सभी चर के लिए वही।

यह विजेट कोड है:

/* CUSTOM TAG CLOUD */
class Tag_cloud extends WP_Widget {

    function Tag_cloud() {
        /* Widget settings. */
        $widget_ops = array( 'classname' => 'Tag_cloud', 'description' => __('Display tag cloud.', 'fabulous') );
        /* Widget control settings. */
        $control_ops = array( 'width' => 200, 'height' => 350, 'id_base' => 'tag_cloud' );
        /* Create the widget. */
        $this->WP_Widget( 'tag_cloud', __('Fabulous tag cloud', 'fabulous'), $widget_ops, $control_ops );
    }

    function widget( $args, $instance ) {
        extract( $args );
        /* User-selected settings. */
        $title = apply_filters('widget_title', $instance['title'] );
        $number = $instance['number'];
        $small = $instance['small'];
        $large = $instance['large'];

        /* Before widget (defined by themes). */
        echo $before_widget;

        /* Title of widget (before and after defined by themes). */
        if ( $title )
            echo $before_title . '' . $title . $after_title;

            echo fab_show_tags ($small, $large, $number);

        /* After widget (defined by themes). */
        echo $after_widget;
    }

    function update( $new_instance, $old_instance ) {
        $instance = $old_instance;
        /* Strip tags (if needed) and update the widget settings. */
        $instance['title'] = strip_tags( $new_instance['title'] );
        $instance['number'] = strip_tags( $new_instance['number'] );
        $instance['small'] = strip_tags( $new_instance['small'] );
        $instance['large'] = strip_tags( $new_instance['large'] );

        return $instance;
    }
    function form( $instance ) {
        /* Set up some default widget settings. */
        $defaults = array( 'title' => 'TAG CLOUD', 'number' => '10', 'small' => '8', 'large' => '12');
        $instance = wp_parse_args( (array) $instance, $defaults );
     ?>

<input id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" style="width:100%;" />


<input id="<?php echo $this->get_field_id( 'number' ); ?>" name="<?php echo $this->get_field_name( 'number' ); ?>" value="<?php echo $instance['number']; ?>" style="width:100%;" />


<input id="<?php echo $this->get_field_id( 'small' ); ?>" name="<?php echo $this->get_field_name( 'small' ); ?>" value="<?php echo $instance['small']; ?>" style="width:100%;" />


<input id="<?php echo $this->get_field_id( 'large' ); ?>" name="<?php echo $this->get_field_name( 'large' ); ?>" value="<?php echo $instance['large']; ?>" style="width:100%;" />

<?php } }

मुझे नहीं पता कि क्या बुरा है, मैंने अन्य विजेट किए हैं और मुझे यह समस्या नहीं है, मुझे लगता है कि मैंने एक ही कोड लिखा है। कोई मदद है?

0
जोड़ा संपादित
विचारों: 1
मुझे पता है कि इस नोटिस का क्या अर्थ है, लेकिन समस्या यह है कि चर परिभाषित किए गए हैं (मुझे लगता है) अगर उन्हें परिभाषित नहीं किया गया है तो मुझे नहीं पता कि समस्या कहां है
जोड़ा लेखक ThemesCreator, स्रोत

2 उत्तर

function widget( $args, $instance ) {
        extract( $args );
        /* User-selected settings. */

        $title = null; $number = null; $small = null; $large = null;

        if (! empty( $instance['title'] ) ) { $title = apply_filters('widget_title', $instance['title'] ) }
        if (! empty( $instance['number'] ) ) { $number = $instance['number']; }
        if (! empty( $instance['small'] ) ) { $small = $instance['small']; }
        if (! empty( $instance['large'] ) ) { $large = $instance['large']; }

        /* Before widget (defined by themes). */
        echo $before_widget;

        /* Title of widget (before and after defined by themes). */
        if ( $title )
            echo $before_title . '' . $title . $after_title;

            echo fab_show_tags ($small, $large, $number);

        /* After widget (defined by themes). */
        echo $after_widget;
    }
0
जोड़ा
"शून्य" डिफ़ॉल्ट मान जोड़ना नोटिस दूर नहीं जा रहा है। वास्तविक डिफ़ॉल्ट के साथ संपादित होने पर यह संभवतः काम कर सकता है
जोड़ा लेखक Seth C., स्रोत

इसे अपने फ़ंक्शन के शीर्ष पर रखें:

class My_Widget extends WP_Widget {
    protected $defaults;
    function _construct(){
        $this->defaults = array(
            'title'  => '',
            'number' => 5,
            'small'  => 1,
            'large'  => 10,
        );
    }
   //etc etc rest of class functions ...
}

फिर अपने फॉर्म फ़ंक्शन के शीर्ष पर इस अतिरिक्त पंक्ति को इस प्रकार शामिल करें:

function form($instance) {
    $instance = wp_parse_args( (array) $instance, $this->defaults );
   //etc etc, rest of form ...
}

स्पष्ट रूप से यह आपके लिए वास्तविक डिफ़ॉल्ट सेट अप करने के लिए समझ में आ सकता है, लेकिन रिक्त लोग कम से कम चेतावनियां और नोटिस आपको प्राप्त कर सकते हैं।

I just updated my widget plugin. It had the same issue as yours. Here is the example to use that goes with my answer: http://plugins.svn.wordpress.org/sm-sticky-featured-widget/tags/1.2.5/sticky-featured-widget.php

0
जोड़ा