'; $types = array( 'pages' => esc_html__( 'Pages', 'vamtam-consulting' ), 'categories' => esc_html__( 'Categories', 'vamtam-consulting' ), 'posts' => esc_html__( 'Posts', 'vamtam-consulting' ), 'projects' => esc_html__( 'Projects', 'vamtam-consulting' ), ); foreach ( $types as $type => $name ) { echo '

' . esc_html( $name ) . '

'; echo call_user_func( array( __CLASS__, $type ) ); // xss ok } echo ''; } private static function page_level( $number, $parent ) { $query = array( 'posts_per_page' => (int) $number, 'post_type' => 'page', 'order' => 'ASC', 'orderby' => 'title', 'post_parent' => $parent, ); return self::display( $query ); } /** * Display pages * * @return string output html */ private static function pages() { return self::page_level( 1000, 0 ); } /** * Display categories * * @return string output html */ private static function categories() { $feed = esc_html__( 'RSS', 'vamtam-consulting' ); return ''; } /** * Display posts * * @return string output html */ private static function posts() { $query = array( 'posts_per_page' => 1000, 'post_type' => 'post', 'order' => 'ASC', 'orderby' => 'title', ); return self::display( $query, true ); } /** * Display projects * * @return string output html */ private static function projects() { $query = array( 'posts_per_page' => 1000, 'post_type' => 'jetpack-portfolio', 'order' => 'ASC', 'orderby' => 'title', ); return self::display( $query, false ); } /** * Generic printer * * @param object $query WP_Query object with results * @param boolean $show_comment display number of comments * @return string HTML for this section */ private static function display( $query, $show_comment = false ) { $show_comment = vamtam_sanitize_bool( $show_comment ); $archive_query = new WP_Query( $query ); $output = ''; global $post; while ( $archive_query->have_posts() ) { $archive_query->the_post(); $title = get_the_title(); if ( ! empty( $title ) ) { $output .= '
  • '; $output .= "" . strip_tags( $title ) . ''; if ( $show_comment ) { $output .= ' (' . get_comments_number() . ')'; } if ( 'page' === $post->post_type ) { $output .= self::page_level( -1, get_the_ID() ); } $output .= '
  • '; } } wp_reset_postdata(); return ''; } }