2013-10-25 35 views
0

我只是wordpress的新手。目前我正在尝试创建一个插件,它将在小部件部分显示标题,输入文本和文本区域。对于我也做了这样的代码wordpress部件插件没有做主动

<?php 
/* 
Plugin Name: WP Simple Plugin 
Plugin URI: http://www.wordpress.org 
Description: A Plugin to show simple text in widget 
Version: 0.1 
Author: 
*/ 

class WP_My_Plugin extends WP_Widget { 
    function wp_my_plugin() { 
    parent::WP_Widget(false, $name= 'Wp_My_Plugin'); 
    } 

    function form($instance) { 
    if($instance) { 
     $title = esc_attr($instance['title']); 
     $text = esc_attr($instance['text']); 
     $textarea = esc_attr($instance['textarea']); 
    } else { 
     $title = ''; 
     $text = ''; 
     $textarea = ''; 
    } 
    ?> 
    <p> 
     <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Widget Title', 'wp_widget_plugin'); ?></label> 
     <input class="widefat" type="text" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title');?>" value="<?php echo $title; ?>"/> 
    </p> 
    <p> 
     <label for="<?php echo $this->get_field_id('text')?>"><?php _e('Text', 'wp_widget_plugin');?></label> 
     <input type="text" class="widefat" name="<?php echo $this->get_field_name('text');?>" id="<?php echo get_field_id('text');?>" value="<?php echo $text; ?>" /> 
    </p> 
    <p> 
     <label for="<?php echo $this->get_field_id('textarea');?>"><?php _e('Textarea','wp_widget_plugin'); ?></label> 
     <textarea name="<?php echo $this->get_field_name('textarea'); ?>" id="<?php echo $this->get_field_id('textarea'); ?>" class="widefat" /><?php echo $textarea; ?></textarea> 
    </p> 

    <?php 
    } 

    function update($new_instance, $old_instance) { 
    $instance = $old_instance; 
    //Fields 
    $instance['title'] = strip_tags($new_instance['title']); 
    $instance['text'] = strip_tags($new_instance['text']); 
    $instance['textarea'] = strip_tags($new_instance['textarea']); 
    return $instance; 
    /* */ 
    } 

    function widget($args, $instance) { 
    extract ($args); 
    //The widget Options 
    $title = apply_filters('widget_title' , $instance['title']); 
    $text = $instance['text']; 
    $textarea = $instance['textarea']; 
    echo $before_widget; 
    //Display Widget 
    echo '<div class="widget-text wp_widget_plugin_box">'; 

    //Check If Title Is Set 
    if($title) { 
     echo $before_title.$title.$after_title; 
    } 

    //check if text is set 
    if($text) { 
     echo '<p class="wp_widget_plugin_text">'.$text.'</p>'; 
    } 

    //check if texrarea is set 
    if($textarea) { 
     echo '<p class="wp_widget_plugin_textarea">'.$textarea.'</p>'; 
    } 
    echo '</div>'; 
    echo $after_widget; 
    } 
} 

    //Register Widget 
    add_action('widgets_init', 'wp_my_plugin'); 


?> 

但是,当我试图从仪表板激活插件它显示像

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'wp_my_plugin' not found or invalid function name in /wordpress/plugin.php on line 406 

错误和插件未激活 所以有人可以请你告诉我如何解决这个问题。任何帮助都将非常可观。由于

回答

0

它可以是你有这条线

parent::WP_Widget(false, $name= 'Wp_My_Plugin'); 

改变

parent::WP_Widget(false, $name= 'WP_My_Plugin'); ? 
+0

nope..I尝试,它没有工作.... –