';
$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 '' . wp_list_categories(array(
'feed' => $feed,
'show_count' => true,
'use_desc_for_title' => false,
'title_li' => false,
'echo' => 0,
)) . '
';
}
/**
* 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 '';
}
}