Я разрабатываю плагин для Wordpress и мне нужно создать страницу с формой внутри кода моего плагина - PullRequest
1 голос
/ 09 августа 2011

Я разрабатываю плагин.

Я разработал ядро ​​своего плагина, я также разработал виджет, который мне нужно использовать с моим плагином, но теперь я не знаю, где ещечтобы найти информацию.

Что мне нужно сделать, это то, что: в виджете моего плагина я хочу разместить ссылку "Зарегистрироваться здесь !!!", и когда пользователь нажимает там, вывести его на страницу, как http://mysite.com/my_plugin_register

И там отображается форма, чтобы пользователь мог зарегистрироваться.

Есть ли какая-либо ловушка действий, чтобы сделать это?Где я могу найти любой пример?

1 Ответ

0 голосов
/ 09 августа 2011

Чтобы ваш виджет работал, вы создадите класс для вашего виджета, который расширяет класс WP_Widget.Пример ниже:

class My_Widget extends WP_Widget
{
  function My_Widget()
  {
    $this->WP_Widget( false, __( 'My Widget', 'my_widget_i18n') );
  }

  /* This is where the widget content is printed. */
  function widget( $args, $instance )
  {
    extract( $args );

    $title = empty( $instance[ 'title' ] ) ? ' ' : apply_filters( 'widget_title', $instance[ 'title'] );

    echo $before_widget;

    if( !empty( $title ) )
      echo $before_title . $title . $after_title;

    echo '<a href="http://mysite.com/my_plugin_register">My Form</a>';

    echo $after_widget;
  }

  /* Use this to update any widget options */
  function update( $new_instance, $old_instance)
  {
    $instance = $old_instance;
    $instance[ 'title' ] = strip_tags( $new_instance[ 'title' ] );
    return $instance;
  }

  /* Use this to create the form for the widget options */
  function form( $instance )
  {
    $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) );
    $title = strip_tags( $instance[ 'title' ] );
    echo '<p><label for="' . $this->get_field_id( 'title' ) . '">' . __( 'Title', 'events_calendar' ) . ': <input class="widefat" id="' . $this->get_field_id( 'title' ) . '" name="' . $this->get_field_name( 'title' ) . '" type="text" value="' . attribute_escape( $title ) . '" /></label></p>';
  }
}

Дополнительную информацию о WP_Widget можно найти на странице API виджетов

Чтобы создать свою страницу, вы должны использовать шорткод и поставить формув функции для этого.

/* This will write the form that you need to right */
function my_shortcode( $attrs )
{
  ?>
  <form>
    <input type="text" />
    <input type="submit" />
  </form>
  <?php
}
add_shortcode( 'my_shortcode', 'my_shortcode' );

Затем в панели управления Wordpress создайте страницу с слагом 'my_plugin_register' и добавьте к ней следующее содержимое

[my_shortcode]

Вот страница API шорткода для получения дополнительной информации.

...