function wp_list_pages2($args) { $defaults = array('depth' => 0, 'show_date' => '', 'date_format' => get_option('date_format'), 'child_of' => 0, 'exclude' => '', 'title_li' => __('Pages'), 'echo' => 1, 'authors' => '', 'sort_column' => 'menu_order, post_title', 'link_before' => '', 'link_after' => ''); $r = wp_parse_args($args, $defaults); extract($r, EXTR_SKIP); $output = ''; $current_page = 0; // sanitize, mostly to keep spaces out $r['exclude'] = preg_replace('/[^0-9,]/', '', $r['exclude']); // Allow plugins to filter an array of excluded pages $r['exclude'] = implode(',', apply_filters('wp_list_pages_excludes', explode(',', $r['exclude']))); // Query pages. $r['hierarchical'] = 0; $pages = get_pages($r); if (!empty($pages)) { if ($r['title_li']) { $output .= '<li class="pagenav">' . $r['title_li'] . '<ul>'; } global $wp_query; if (is_page() || $wp_query->is_posts_page) { $current_page = $wp_query->get_queried_object_id(); } $output .= walk_page_tree($pages, $r['depth'], $current_page, $r); if ($r['title_li']) { $output .= '</ul></li>'; } } $output = apply_filters('wp_list_pages', $output); if ($r['echo']) { echo $output; } else { return $output; } }
/** * Retrieve or display list of pages in list (li) format. * * @since 1.5.0 * @since 4.7.0 Added the `item_spacing` argument. * * @see get_pages() * * @global WP_Query $wp_query * * @param array|string $args { * Array or string of arguments. Optional. * * @type int $child_of Display only the sub-pages of a single page by ID. Default 0 (all pages). * @type string $authors Comma-separated list of author IDs. Default empty (all authors). * @type string $date_format PHP date format to use for the listed pages. Relies on the 'show_date' parameter. * Default is the value of 'date_format' option. * @type int $depth Number of levels in the hierarchy of pages to include in the generated list. * Accepts -1 (any depth), 0 (all pages), 1 (top-level pages only), and n (pages to * the given n depth). Default 0. * @type bool $echo Whether or not to echo the list of pages. Default true. * @type string $exclude Comma-separated list of page IDs to exclude. Default empty. * @type array $include Comma-separated list of page IDs to include. Default empty. * @type string $link_after Text or HTML to follow the page link label. Default null. * @type string $link_before Text or HTML to precede the page link label. Default null. * @type string $post_type Post type to query for. Default 'page'. * @type string $post_status Comma-separated list of post statuses to include. Default 'publish'. * @type string $show_date Whether to display the page publish or modified date for each page. Accepts * 'modified' or any other value. An empty value hides the date. Default empty. * @type string $sort_column Comma-separated list of column names to sort the pages by. Accepts 'post_author', * 'post_date', 'post_title', 'post_name', 'post_modified', 'post_modified_gmt', * 'menu_order', 'post_parent', 'ID', 'rand', or 'comment_count'. Default 'post_title'. * @type string $title_li List heading. Passing a null or empty value will result in no heading, and the list * will not be wrapped with unordered list `<ul>` tags. Default 'Pages'. * @type string $item_spacing Whether to preserve whitespace within the menu's HTML. Accepts 'preserve' or 'discard'. Default 'preserve'. * @type Walker $walker Walker instance to use for listing pages. Default empty (Walker_Page). * } * @return string|void HTML list of pages. */ function wp_list_pages($args = '') { $defaults = array('depth' => 0, 'show_date' => '', 'date_format' => get_option('date_format'), 'child_of' => 0, 'exclude' => '', 'title_li' => __('Pages'), 'echo' => 1, 'authors' => '', 'sort_column' => 'menu_order, post_title', 'link_before' => '', 'link_after' => '', 'item_spacing' => 'preserve', 'walker' => ''); $r = wp_parse_args($args, $defaults); if (!in_array($r['item_spacing'], array('preserve', 'discard'), true)) { // invalid value, fall back to default. $r['item_spacing'] = $defaults['item_spacing']; } $output = ''; $current_page = 0; // sanitize, mostly to keep spaces out $r['exclude'] = preg_replace('/[^0-9,]/', '', $r['exclude']); // Allow plugins to filter an array of excluded pages (but don't put a nullstring into the array) $exclude_array = $r['exclude'] ? explode(',', $r['exclude']) : array(); /** * Filters the array of pages to exclude from the pages list. * * @since 2.1.0 * * @param array $exclude_array An array of page IDs to exclude. */ $r['exclude'] = implode(',', apply_filters('wp_list_pages_excludes', $exclude_array)); // Query pages. $r['hierarchical'] = 0; $pages = get_pages($r); if (!empty($pages)) { if ($r['title_li']) { $output .= '<li class="pagenav">' . $r['title_li'] . '<ul>'; } global $wp_query; if (is_page() || is_attachment() || $wp_query->is_posts_page) { $current_page = get_queried_object_id(); } elseif (is_singular()) { $queried_object = get_queried_object(); if (is_post_type_hierarchical($queried_object->post_type)) { $current_page = $queried_object->ID; } } $output .= walk_page_tree($pages, $r['depth'], $current_page, $r); if ($r['title_li']) { $output .= '</ul></li>'; } } /** * Filters the HTML output of the pages to list. * * @since 1.5.1 * @since 4.4.0 `$pages` added as arguments. * * @see wp_list_pages() * * @param string $output HTML output of the pages list. * @param array $r An array of page-listing arguments. * @param array $pages List of WP_Post objects returned by `get_pages()` */ $html = apply_filters('wp_list_pages', $output, $r, $pages); if ($r['echo']) { echo $html; } else { return $html; } }
function wp_list_pages($args = '') { if ( is_array($args) ) $r = &$args; else parse_str($args, $r); $defaults = array('depth' => 0, 'show_date' => '', 'date_format' => get_option('date_format'), 'child_of' => 0, 'exclude' => '', 'title_li' => __('Pages'), 'echo' => 1, 'authors' => ''); $r = array_merge($defaults, $r); $output = ''; // sanitize, mostly to keep spaces out $r['exclude'] = preg_replace('[^0-9,]', '', $r['exclude']); // Allow plugins to filter an array of excluded pages $r['exclude'] = implode(',', apply_filters('wp_list_pages_excludes', explode(',', $r['exclude']))); // Query pages. $pages = get_pages($r); if ( !empty($pages) ) { if ( $r['title_li'] ) $output .= '<li class="pagenav">' . $r['title_li'] . '<ul>'; global $wp_query; $current_page = $wp_query->get_queried_object_id(); $output .= walk_page_tree($pages, $r['depth'], $current_page, $r); if ( $r['title_li'] ) $output .= '</ul></li>'; } $output = apply_filters('wp_list_pages', $output); if ( $r['echo'] ) echo $output; else return $output; }
/** * list_grandchild_pages * * List as many levels as exist within the grandchild-sidebar-menu ul * * @param int $parent_page_id * * @return string */ private function list_grandchild_pages($parent_page_id) { if (!$this->current_page_ancestor($parent_page_id)) { return ''; } if (!($pages = $this->get_child_pages($parent_page_id))) { return ''; } if ($this->level == $this->args['levels']) { return ''; } $this->level++; $content = sprintf('<ul class="grandchild-sidebar-menu level-%s children">', $this->level); $inside = ''; foreach ($pages as $page) { $inside .= walk_page_tree(array($page), 1, $this->current_page_id, $this->args); $inside .= $this->list_grandchild_pages($page->ID); $inside .= "</li>\n"; } if ('' == $inside) { return ''; } return $content . $inside . "</ul>\n"; }
function wpss_list_pages($arr, $query_args) { $map_args = array('title' => 'post_title', 'date' => 'post_date', 'author' => 'post_author', 'modified' => 'post_modified'); // modify the query args for get_pages() if necessary $orderby = array_key_exists($query_args['orderby'], $map_args) ? $map_args[$query_args['orderby']] : $query_args['orderby']; $r = array('depth' => $arr['page_depth'], 'show_date' => '', 'date_format' => get_option('date_format'), 'child_of' => 0, 'exclude' => $arr['exclude'], 'echo' => 1, 'authors' => '', 'sort_column' => $orderby, 'sort_order' => $query_args['order'], 'link_before' => '', 'link_after' => '', 'walker' => ''); $output = ''; $current_page = 0; $r['exclude'] = preg_replace('/[^0-9,]/', '', $r['exclude']); // sanitize, mostly to keep spaces out // Query pages. $r['hierarchical'] = 0; $pages = get_pages($r); if (!empty($pages)) { global $wp_query; if (is_page() || is_attachment() || $wp_query->is_posts_page) { $current_page = get_queried_object_id(); } elseif (is_singular()) { $queried_object = get_queried_object(); if (is_post_type_hierarchical($queried_object->post_type)) { $current_page = $queried_object->ID; } } $output .= walk_page_tree($pages, $r['depth'], $current_page, $r); } // remove links if ($arr['links'] != 'true') { $output = preg_replace('/<a href=\\"(.*?)\\">(.*?)<\\/a>/', "\\2", $output); } if ($r['echo']) { echo $output; } else { return $output; } }
function cmspo_list_pages($args = null, $count = false) { // no array in post_status until 3.2 $post_type = esc_attr($_GET['post_type']); $defaults = array('post_type' => $post_type, 'posts_per_page' => -1, 'orderby' => 'menu_order', 'order' => 'ASC', 'post_status' => implode(',', cmspo_post_statuses())); $r = wp_parse_args($args, $defaults); $pages = new WP_Query($r); wp_reset_query(); $pages = $pages->posts; if (count($pages) == 0) { return false; } else { if ($count) { return count($pages); } } $walker = new PO_Walker(); $args = array('depth' => 0, 'link_before' => '', 'link_after' => '', 'walker' => $walker); $output = walk_page_tree($pages, 0, $args['depth'], $args); return $output; }
<div id="posttype-page" class="posttypediv"> <p> <?php printf(__('The above sidebar will replace the "<strong>%s</strong>" sidebar for all pages selected below.', 'simple-page-sidebars'), $default_sidebar); echo ' '; _e('Any currently assigned custom sidebars will also be overridden for the selected pages.', 'simple-page-sidebars'); ?> </p> <div id="page-all" class="tabs-panel tabs-panel-view-all tabs-panel-active"> <ul id="pagechecklist" class="list:page categorychecklist form-no-clear"> <?php $posts = get_posts(array('post_type' => 'page', 'order' => 'ASC', 'orderby' => 'title', 'posts_per_page' => -1, 'suppress_filters' => true, 'cache_results' => false)); $args['sidebar'] = self::sanitize_sidebar_name(stripslashes($_GET['sidebar'])); $args['selected'] = self::get_page_ids_using_sidebar($args['sidebar']); $args['walker'] = new Simple_Page_Siders_Walker_Page_Checklist(); $items = walk_page_tree($posts, 0, 0, $args); echo $items; ?> </ul> </div><!-- end div.tabs-panel --> <p style="margin: 5px 0 0 0"> <span class="description"><?php _e('To delete this sidebar, simply uncheck all pages and click the "Update Sidebar" button.', 'simple-page-sidebars'); ?> </span> </p> </div><!-- end div.posttypediv -->
/** * lectures_screen( $vars ) * * Hooks into screen_handler * Adds a UI to list lectures. * * @param Array $vars a set of variables received for this screen template * @return Array $vars a set of variable passed to this screen template */ function lectures_screen($vars) { global $bp; $args = array('numberposts' => '-1', 'post_type' => 'lecture', 'group_id' => $bp->groups->current_group->id, 'orderby' => 'menu_order, post_title', 'link_before' => '', 'link_after' => ''); $lectures = get_posts($args); $vars['lectures_hanlder_uri'] = $vars['current_uri'] . '/lectures/'; $vars['lectures'] = walk_page_tree($lectures, 0, 0, $args); return $vars; }
/** * Retrieve or display list of pages in list (li) format. * * @since 1.5.0 * * @param array|string $args Optional. Override default arguments. * @return string HTML content, if not displaying. */ function wp_list_pages($args = '') { $defaults = array( 'depth' => 0, 'show_date' => '', 'date_format' => get_option('date_format'), 'child_of' => 0, 'exclude' => '', 'title_li' => __('Pages'), 'echo' => 1, 'authors' => '', 'sort_column' => 'menu_order, post_title', 'link_before' => '', 'link_after' => '', 'walker' => '', ); $r = wp_parse_args( $args, $defaults ); extract( $r, EXTR_SKIP ); $output = ''; $current_page = 0; // sanitize, mostly to keep spaces out $r['exclude'] = preg_replace('/[^0-9,]/', '', $r['exclude']); // Allow plugins to filter an array of excluded pages (but don't put a nullstring into the array) $exclude_array = ( $r['exclude'] ) ? explode(',', $r['exclude']) : array(); /** * Filter the array of pages to exclude from the pages list. * * @since 2.1.0 * * @param array $exclude_array An array of page IDs to exclude. */ $r['exclude'] = implode( ',', apply_filters( 'wp_list_pages_excludes', $exclude_array ) ); // Query pages. $r['hierarchical'] = 0; $pages = get_pages($r); if ( !empty($pages) ) { if ( $r['title_li'] ) $output .= '<li class="pagenav">' . $r['title_li'] . '<ul>'; global $wp_query; if ( is_page() || is_attachment() || $wp_query->is_posts_page ) { $current_page = get_queried_object_id(); } elseif ( is_singular() ) { $queried_object = get_queried_object(); if ( is_post_type_hierarchical( $queried_object->post_type ) ) { $current_page = $queried_object->ID; } } $output .= walk_page_tree($pages, $r['depth'], $current_page, $r); if ( $r['title_li'] ) $output .= '</ul></li>'; } /** * Filter the HTML output of the pages to list. * * @since 1.5.1 * * @see wp_list_pages() * * @param string $output HTML output of the pages list. * @param array $r An array of page-listing arguments. */ $output = apply_filters( 'wp_list_pages', $output, $r ); if ( $r['echo'] ) echo $output; else return $output; }