Как в WordPress создать свой виджет?

    Ответ

    Создайте отдельный файл с расширением .php подключите его к functions.php. В созданный файл скопируйте код (в самом коде легко разобраться, поэтому у вас не составит труда добавить или удалить элементы, поменять название или описание виджета):

     <?php
     /**
     * Plugin Name: My widget)))
     */
    add_action( 'widgets_init', 'my_widget' );
    function my_widget() {
     register_widget( 'MY_Widget' );
     }
    class MY_Widget extends WP_Widget {
    function MY_Widget() {
     $widget_ops = array( 'classname' => 'widget_kurs', 'description' => __('Виджет начала обучения и ближайших курсов ', 'widget_kurs') );
    $control_ops = array( 'width' => 300, 'height' => 350, 'id_base' => 'widget_kurs-widget' );
    $this->WP_Widget( 'widget_kurs-widget', __('widget_kurs Widget', 'widget_kurs'), $widget_ops, $control_ops );
     }
    function widget( $args, $instance ) {
     extract( $args );
    //Our variables from the widget settings.
     $title = apply_filters('widget_title', $instance['title'] );
     $name = $instance['name'];
     $namea = $instance['namea'];
    echo $before_widget;
    // Display the widget title
     if ( $title )
     echo $before_title . $title . $after_title;
    //Display the name
     if ( $name || $namea )
     print "<a class='nk' href='$namea'>$name</a>";
    echo $after_widget;
     }
    //Update the widget
    function update( $new_instance, $old_instance ) {
     $instance = $old_instance;
    //Strip tags from title and name to remove HTML
     $instance['title'] = strip_tags( $new_instance['title'] );
     $instance['name'] = strip_tags( $new_instance['name'] );
     $instance['namea'] = strip_tags( $new_instance['namea'] );
    }
    function form( $instance ) {
    //Set up some default widget settings.
     $defaults = array( 'title' => __('widget_kurs', 'widget_kurs');
     $instance = wp_parse_args( (array) $instance, $defaults ); ?>
    <p>
     <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e('Заголовок:', 'widget_kurs'); ?></label>
     <input id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" style="width:100%;" />
     </p>
     <p>
     <label for="<?php echo $this->get_field_id( 'name' ); ?>"><?php _e('Название курса:', 'widget_kurs'); ?></label>
     <input id="<?php echo $this->get_field_id( 'name' ); ?>" name="<?php echo $this->get_field_name( 'name' ); ?>" value="<?php echo $instance['name']; ?>" style="width:100%;" />
     </p>
     <p>
     <label for="<?php echo $this->get_field_id( 'namea' ); ?>"><?php _e('Ссылка на курс:', 'widget_kurs'); ?></label>
     <input id="<?php echo $this->get_field_id( 'namea' ); ?>" name="<?php echo $this->get_field_name( 'namea' ); ?>" value="<?php echo $instance['namea']; ?>" style="width:100%;" />
     </p>
    <?php
     }
     }
    ?>
     

    Добавить Комментарий

    Ваш ответ

    Размещая свой ответ, вы соглашаетесь с правилами сайта.