Cum pot adăuga un widget personalizat "Text" în managerul de Aspect din functions.php?
19 ian. 2011, 19:38:15
Vizualizări: 2.31K
Voturi: 1
Încerc să adaug o replică a widget-ului text implicit din WP, cu propriul meu parametru de clasă CSS, în functions.php, astfel încât să apară în managerul de widget-uri și să poată fi adăugat într-o bară laterală.
Prima mea încercare este mai jos, dar sunt sigur că trebuie să existe o cale mai ușoară decât cum o fac eu.
Se poate face într-un mod mai simplu?
În functions.php, am asta...
$google_search = TEMPLATEPATH . "/google_search.php";
require_once($google_search);
add_action('widgets_init', create_function('', "register_widget('My_Widget_Search');"));
În google_search.php, am... (Totul funcționează cu excepția faptului că conținutul câmpului textarea nu se salvează)
<?php
class My_Widget_Search extends WP_Widget {
function My_Widget_Search() {
$widget_ops = array( 'classname' => 'widget_search', 'description' => __( "Widget de căutare Google Adsense placeholder" ) );
$this->WP_Widget('adsense_search', __('Widget de căutare Adsense'), $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 ) {
//Valori implicite
$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( 'Titlu:' ); ?></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
}
}

Scott B
5.7K
Toate răspunsurile la întrebare
1
Întrebări similare
3
răspunsuri
4
răspunsuri
2
răspunsuri
1
răspunsuri