2013-07-14 4 views
1

Я очень новичок в кодировании плагинов и виджетов Wordpress (это мой первый раз!). Я создал очень простой плагин Wordpress, который состоит из 2 текстовых входов и поля выбора. Текстовые входы работают нормально, однако окно выбора не отображается, когда я нажимаю кнопку «Сохранить».Wordpress Custom Widget Выбор опций Не экономия

Вот мой код плагина:

<?php 
/* Plugin Name: Sidebar Box 
Plugin URI: http://www.website.com 
Description: Displays contact box in sidebar 
Version: 1.0 
Author: JM 
Author URI: N/A 
*/ 

// use widgets_init action hook to execute custom function 
add_action('widgets_init', 'jm_box_widget'); 

//register our widget 
function jm_box_widget() { 
    register_widget('jm_box_widget_my_info'); 
} 

//boj_widget_my_info class 
class jm_box_widget_my_info extends WP_Widget { 

    //process the new widget 
    function jm_box_widget_my_info() { 
     $widget_ops = array( 
      'classname' => 'jm_box_widget_class', 
      'description' => 'Sidebar Box Widget.' 
      ); 
     $this->WP_Widget('jm_box_widget_my_info', 'Box Widget', $widget_ops); 
    } 

    //build the widget settings form 
    function form($instance) { 
     $defaults = array('title' => 'Box Page Widget', 'description' => '', 'boxtype' => ''); 
     $instance = wp_parse_args((array) $instance, $defaults); 
     $title = $instance['title']; 
     $description = $instance['description']; 
     $boxtype = $instance['boxtype']; 

     ?> 
      <p>Title: <input class="widefat" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" /></p> 
      <p>Description: <textarea class="widefat" name="<?php echo $this->get_field_name('description'); ?>"/><?php echo esc_attr($description); ?></textarea></p> 
    <p>Sex: 
      <select id="<?php echo $this->get_field_id('boxtype'); ?>" name="<?php echo $this->get_field_name('boxtype'); ?>" class="widefat" style="width:100%;"> 
      <option <?php if ('box1' == $instance['format']) echo 'selected="selected"'; ?> value="box1">box1</option> 
    <option <?php if ('box2' == $instance['format']) echo 'selected="selected"'; ?> value="box2">box2</option> 
      </select> 
     </p> 
     <?php 
    } 

    //save the widget settings 
    function update($new_instance, $old_instance) { 
     $instance = $old_instance; 
     $instance['title'] = strip_tags($new_instance['title']); 
     $instance['description'] = strip_tags($new_instance['description']); 
     $instance['boxtype'] = ($new_instance['boxtype']); 
     return $instance; 
    } 

    //display the widget 
    function widget($args, $instance) { 
     extract($args); 

     echo $before_widget; 
     $title = apply_filters('widget_title', $instance['title']); 
     $description = empty($instance['description']) ? '&nbsp;' : $instance['description']; 
     $boxtype = empty($instance['boxtype']) ? '&nbsp;' : $instance['boxtype']; 

     echo '<div class="sidebar-box" id="' . $boxtype . '" onmouseover="this.style.cursor=\'pointer\'" onmouseup="window.location=\'' . $boxtype . '\'"> 
       <h3>' . $title . '</h3> 
       <p>' . $description . '</p> 
       </div>'; 
     echo $after_widget; 
    } 
} 

>

Я не могу за жизнь мне тренировки, почему это не спасает.

Любая помощь была бы принята с благодарностью.

Спасибо,

Джеймс

ответ

0

Где-то вдоль линии вы должны быть изменены $ экземпляр [ 'формат'] до $, например, [ 'boxtype'], но не в форме. Параметры должны меняться.

<option <?php if ('box1' == $boxtype)