简体   繁体   English

WordPress的小部件插件不活跃

[英]wordpress widget plugin not doing active

I am just newbie to the wordpress . 我只是wordpress的新手。 Currently I am trying to create a plugin that will show a title, input text and text area in the widget section. 目前,我正在尝试创建一个在小部件部分显示标题,输入文本和文本区域的插件。 For that I have done the code like this 为此,我完成了这样的代码

<?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' );


?>

But when I am trying activate the plugin from dashboard it is showing error like 但是当我尝试从仪表板激活插件时,它显示错误,例如

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

and the plugin is not activating So can someone kindly tell me how to solve this. 并且插件未激活,所以有人可以告诉我如何解决此问题。 Any help will be really appreciable. 任何帮助将是非常可观的。 Thanks 谢谢

Can it be that you have to change this line 可能是您必须更改此行吗

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

to

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM