it-swarm.com.de

Wie kann ich Appearance Manager aus functions.php ein benutzerdefiniertes "Text" -Widget hinzufügen?

Ich versuche, ein Replikat des Standardtextwidgets WP mit meinem eigenen CSS-Klassenparameter zu functions.php hinzuzufügen, damit es im Widgets-Manager angezeigt und einer Seitenleiste hinzugefügt werden kann.

Mein erster Versuch ist unten, aber ich bin mir sicher, dass es einen einfacheren Weg geben muss, als ich es tue.

Kann dies auf einfachere Weise erfolgen?

In functions.php habe ich folgendes ...

$google_search = TEMPLATEPATH . "/google_search.php";require_once($google_search);
add_action('widgets_init', create_function('', "register_widget('My_Widget_Search');"));

In google_search.php gibt es ... (Alles funktioniert, außer der Inhalt des Textfelds wird nicht gespeichert.)

<?php

class My_Widget_Search extends WP_Widget {

    function My_Widget_Search() {
        $widget_ops = array( 'classname' => 'widget_search', 'description' => __( "Google Adsense Search Widget Placeholder" ) );
        $this->WP_Widget('adsense_search', __('Adsense Search Widget'), $widget_ops);
    }

    function widget( $args, $instance ) {
        extract( $args );
        $title = apply_filters('widget_title', empty( $instance['title'] ) ? __( '' ) : $instance['title']);
        $text = apply_filters('widget_text', empty( $instance['text'] ) ? __( '' ) : $instance['text']);

        }

    function update( $new_instance, $old_instance ) {
        $instance = $old_instance;
        $instance['title'] = strip_tags($new_instance['title']);
        $instance['text'] = $new_instance['text'];

        return $instance;
    }

    function form( $instance ) {
        //Defaults
        $instance = wp_parse_args( (array) $instance, array( 'title' => '') );
        $title = esc_attr( $instance['title'] );
        $text = $instance['text'];
?>
        <p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e( 'Title:' ); ?></label>
        <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></p>
        <textarea class="widefat" rows="16" cols="20" id="<?php echo $this->get_field_id('text'); ?>" name=""<?php echo $this->get_field_name('text'); ?>"><?php echo $text; ?></textarea>
<?php
    }

}
1
Scott B

Eine Idee wäre, aus den Kerndateien in die Widgets-Datei zu gehen, den Text-Widget-Code in die Datei functions.php zu kopieren und die Version nach Bedarf zu bearbeiten. Nur eine Idee, die hoffentlich einige Probleme lösen würde.

1
tw2113