3.01
カスタムポスト対応
/** * categoryWidget Class */ add_action('widgets_init', create_function('', 'return register_widget("tmn_categoryWidget");')); class tmn_categoryWidget extends WP_Widget { /** constructor */ function tmn_categoryWidget() { $widget_ops= array( 'description'=> '表示するカテゴリをひとつ指定して、属するエントリの一覧を日付 タイトルリンクで表示します。') ; parent::WP_Widget(false, 'カテゴリウィジェット',$widget_ops); wp_reset_query(); } /** @see WP_Widget::widget */ function widget($args, $instance) { global $post; extract( $args ); echo $before_widget; echo $before_title. wp_specialchars($instance['title']). $after_title; $names = get_post_types( array( 'public' => true, '_builtin'=> false ) ); $names_builtin = get_post_types( array( 'public' => true, '_builtin'=> true ) ); $names = array_merge($names,$names_builtin); if (have_posts()){ query_posts(array('category_name'=> $instance['title'],'post_type'=> $names,)); while (have_posts()) : the_post(); ?> <li class="category_report"> <span title="published:<?php esc_attr(the_time('Y年 F j日 ')); ?>"><?php echo get_post_type($post->ID); ?> </span> <a href="<?php the_permalink(); ?>" ><?php the_title("",""); ?></a> </li> <?php endwhile; } echo $after_widget; } /** @see WP_Widget::update */ function update( $new_instance, $old_instance ) { $instance['title']= strip_tags(stripslashes($new_instance['title'])); return $instance; } /** @see WP_Widget::form */ function form($instance) { $title= esc_attr($instance['title']); ?> <p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?> <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; ?>" /></label></p> <?php } }