'fcn_story', 'post_status' => ['publish'], 'posts_per_page' => -1, 'order' => 'ASC', 'orderby' => 'name', 'update_post_term_cache' => false, // Improve performance 'no_found_rows' => true // Improve performance ); $stories = new WP_Query( $args ); // Sort stories $sorted_stories = []; if ( $stories->have_posts() ) { // Loop through posts... foreach ( $stories->posts as $story ) { $story_id = $story->ID; // Skip hidden if ( get_post_meta( $story_id, 'fictioneer_story_hidden', true ) ) { continue; } // Relevant data $title = trim( fictioneer_get_safe_title( $story_id, 'story_index' ) ); $first_char = strtolower( mb_substr( $title, 0, 1, 'UTF-8' ) ); // Normalize for numbers and other non-alphabetical characters if ( is_numeric( $first_char ) ) { $first_char = '#'; // Group under '#' } // Add index if necessary if ( ! isset( $sorted_stories[ $first_char ] ) ) { $sorted_stories[ $first_char ] = []; } $sorted_stories[ $first_char ][] = array( 'id' => $story_id, 'title' => $title, 'link' => get_post_meta( $story_id, 'fictioneer_story_redirect_link', true ) ?: get_permalink( $story_id ), 'date' => get_the_date( $story_id ), 'total_words' => absint( get_post_meta( $story_id, 'fictioneer_story_total_word_count', true ) ?? 0 ), 'rating' => get_post_meta( $story_id, 'fictioneer_story_rating', true ), 'status' => get_post_meta( $story_id, 'fictioneer_story_status', true ) ); } // Sort by index ksort( $sorted_stories ); } // Last key end( $sorted_stories ); $last_key = key( $sorted_stories ); reset( $sorted_stories ); ?>
'page', 'post_id' => $post_id, 'breadcrumbs' => array( [fcntr( 'frontpage' ), get_home_url()] ) ); // Add current breadcrumb $footer_args['breadcrumbs'][] = $this_breadcrumb; // Get footer with breadcrumbs get_footer( null, $footer_args ); ?>