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;
    }
}
Example #6
0
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;
}