'pages', 'description' => _a('Your site’s WordPress Pages')); $this->WP_Widget('atom-pages', _a('Pages'), $widget_ops); } function widget($args, $instance){ extract($args); $instance = wp_parse_args($instance, $this->defaults()); $title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base); $sortby = empty($instance['sortby']) ? 'menu_order' : $instance['sortby']; $exclude = empty($instance['exclude']) ? '' : $instance['exclude']; $type = (empty($instance['type']) ? 'all' : esc_attr($instance['type'])); $root = (bool)$instance['root']; $depth = intval($instance['depth']); $order = 'ASC'; if ($sortby == 'menu_order') $sortby = 'menu_order, post_title'; // newest dates first if ($sortby == 'post_date' || $sortby == 'post_modified') $order = 'DESC'; $parent = 0; if ($type == 'sub'): global $post; $parent = $post; if($root): while ($parent->post_parent != 0) $parent = &get_post($parent->post_parent); $title = ''.$parent->post_title.''; endif; $parent = $parent->ID; endif; $out = wp_list_pages(apply_filters('widget_pages_args', array( 'title_li' => '', 'echo' => 0, 'sort_order' => $order, 'sort_column' => $sortby, 'depth' => $depth, 'exclude' => $exclude, 'child_of' => $parent))); if(empty($out)) return atom_add_debug_message("No pages found for the current context in {$args['widget_id']} ({$args['widget_name']}). Widget marked as inactive"); echo $before_widget; if($title) echo $before_title.$title.$after_title; ?>