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
}
}