WordPressのウィジェットプラグインを自作する | jaxx2104.info

右カラムのつぶやきを 1 件表示するプラグインを作った時のメモ

このままだと[外観]->[ウィジェット]の欄に「Get Twitter」が追加され、サイト上に「サンプルです」と表示されるので、この部分を置き換える。

/wp/wp-contents/plugin/test/test.php

<?php
/*
Plugin Name: Get Twitter
Plugin URI: http://jaxx2104.info
Description: Twitterを表示するプラグイン
Author: jaxx2104
Version: 0.1
Author URI: http://www.jaxx2104.info
 */

class GetTwitter_Widget extends WP_Widget {
  //1.[外観]->[ウィジェット] での表示
  public function __construct() {
    parent::__construct(
      'getTwitter_widget', // Base ID
      'Get Twitter', // Name
      array( 'description' => __('TwitterAPIを使って、つぶやきを表示するプラグイン', 'text_domain'), ) //desc
    );
  }

  //2.サイト上での表示
  public function widget($args, $instance) {
    extract($args);
    $title = apply_filters('widget_title', $instance['title']);
    echo $before_widget;
    if (!empty($title))
    echo $before_title . $title . $after_title;
    echo 'サンプルです'; //ウィジェット本体
    echo $after_widget;
  }

  //3.フォーム(4)の情報をサイト(2)へ渡す
  public function update( $new_instance, $old_instance ) {
    $instance = $old_instance;
    $instance['title'] = strip_tags($new_instance['title']);
    return $instance;
  }

  //4.[外観]->[ウィジェット] でのフォーム
  public function form( $instance ) {
    if ( $instance ) {
      $title = esc_attr($instance['title']);
    }
    else {
      $title = __('New title', 'text_domain');
    }
    echo sprintf('<p><label for="%s">%s</label><input class="widefat" id="%s" name="%s" type="text" value="%s" /></p>',$this->get_field_id('title'),_e('Title:'),$this->get_field_id('title'),$this->get_field_name('title'),$title);
  }
}

add_action('widgets_init',
           create_function('', 'register_widget("GetTwitter_widget");')
           );

?>

プラグイン作るの楽しいぞ!