wordpress3.5でウィジェットを自作する方法を紹介します。
いくつかウィジェットがありますが、既存のものではなく、「こういうのあったらいいな」というのを形にできたらすごく良いと思います。
修正ファイル:wp-includes/default-widgets.php
基本形
class My_Widget_2ch extends WP_Widget {
//constructer・・・読み込み時に最初に実行する。
function My_Widget_2ch() {
parent::WP_Widget(false, $name = ‘2ch’);
}
//view・・・表示するための情報をDBなどから取得したり、加工したり。
function widget($args, $instance) {
global $wpdb;//DB接続
~
}
//update・・・ウィジェットの設定ページで、タイトルなどを入力した結果を受け取る。
function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance[‘title’] = strip_tags($new_instance[‘title’]);
$instance[‘body’] = trim($new_instance[‘body’]);
return $instance;
}
//form・・・ウィジェットの設定ページで、表示するタイトルなどの入力画面。
function form($instance) {
$title = esc_attr($instance[‘title’]);
$body = esc_attr($instance[‘body’]);
?>
<p>
<label for=”<?php echo $this->get_field_id(‘title’); ?>”>
<?php _e(‘サイトに表示されるコンテンツ:’); ?>
</label>
<input class=”widefat” id=”<?php echo $this->get_field_id(‘title’); ?>” name=”<?php echo $this->get_field_name(‘title’); ?>” type=”text” value=”<?php echo $title; ?>” />
</p>
<p>
<label for=”<?php echo $this->get_field_id(‘body’); ?>”>
<?php _e(‘サイトに表示されるコンテンツ:’); ?>
</label>
<textarea class=”widefat” rows=”16″ colls=”20″ id=”<?php echo $this->get_field_id(‘body’); ?>” name=”<?php echo $this->get_field_name(‘body’); ?>”>
<?php echo $body; ?>
</textarea>
</p>
<?php
}
}
//ウィジェットを有効化する。
add_action(‘widgets_init’, create_function(”, ‘return register_widget(“My_Widget_2ch”);’));